Wabi_sabi_x 2023-02-24 23:27 采纳率: 50%
浏览 26
已结题

c++中数组对象的输入

使用VS2022编译器
问题:
对学生类数组对象(student stu[all_stu])输入数据
进行For循环输入时,

for (int i = 0; i < all_stu; i++)
    {
        cout << "测试:进入输入句" << endl;
        stu[i].getstudent(stu[i]);
    }

在第三次输入时 会跳过成员函数void getstudent(student p) 中的(cin >> p.name >> p.stu_number>>p.grade[subjects]; )语句,完全没有任何头绪。求指点!

结果如图:

img

代码如下

#include <iostream>
#include <string.h>
#include <string >
#include <stdio.h>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

const int all_stu =3;
const int subjects = 3;

class student {
public:
    void getstudent(student p)
    { 
        cout << "测试:进入输入函数" << endl;
        cin >> p.name >> p.stu_number>>p.grade[subjects];
        cout << "输入完毕"<<endl;
    }
    void aver_grade(student p)
    {
        double sum = 0;
            for (int i = 0; i < subjects; i++)
            {
                sum += p.grade[i];

            }
            p.avergrade = (sum / subjects);
            
            if(p.avergrade < 60.0)
            {
                fail_stu += 1;
            }
            cout << p.avergrade << endl;
    };
    void show_student(student p)
    {
        cout << "输出学生的各科成绩与平均成绩";
        cout <<"名字:" << p.name <<"学号:" << p.stu_number<<"各科成绩:";
        for (int i = 0; i < subjects; i++)
        {
             cout<<p.grade[i]<<"  ";
        }
        cout << p.avergrade;
    };
    static int all_stus;
    static int fail_stu;
    static void show_all_fail();
private:
    string name;
    int stu_number=0;
    double grade[subjects+1] = {NULL};
    double avergrade=0;
};
int student::all_stus = all_stu;
int student::fail_stu = 0;
void student::show_all_fail()
{
    cout << "学生的总数:" << all_stus << "平均成绩不及格学生的总数:" << fail_stu<< endl;
};
int main() {
    student stu[all_stu];
        cout << "请输入学生的姓名、学号、各科的成绩"<<endl;
    for (int i = 0; i < all_stu; i++)
    {
        cout << "测试:进入输入句" << endl;
        stu[i].getstudent(stu[i]);
    }
    return 0;
}

  • 写回答

2条回答 默认 最新

  • Huazie 全栈领域优质创作者 2023-02-24 23:43
    关注

    后面的三门成绩,也要依此输入,参考如下:

    cin >> p.name >> p.stu_number>>p.grade[0]>>p.grade[1]>>p.grade[2];
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月6日
  • 已采纳回答 2月26日
  • 创建了问题 2月24日

悬赏问题

  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Linux权限管理相关操作(求解答)
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表
  • ¥15 DbVisualizer Pro 12.0.7 sql commander光标错位 显示位置与实际不符
  • ¥15 android 打包报错
  • ¥15 关于stm32的问题