狗爹dying
2021-11-26 00:27
采纳率: 100%
浏览 17

学生成绩系统录入函数为什么只执行了一次

#include
#include
#include
using namespace std;
typedef struct student
{
int ID;
char name[64];
int score[5];
}stu;
void input(stu s[],int n)
{
cout<<"请输入参加考试的学生人数:";
cin>>n;
cout<<"***********学生信息录入***********"<<endl;
for(int i=0;i<n;i++)
{
cout<<"请输入学号:";
cin>>s[i].ID;
cout<<"请输入学生姓名:";
cin>>s[i].name;
cout<<"请输入该学生的数学,英语,物理,计算机程序设计I和近代史五门成绩,用空格隔开"<<endl;
cin>>s[i].score[0]>>" ">>s[i].score[1]>>" ">>s[i].score[2]>>" ">>s[i].score[3]>>" ">>s[i].score[4];
}
cout<<"录入成功,请按回车返回主界面"<<endl;
}
void main()
{
int n=0,number;
stu s[64];
while(1)
{
system("cls");
cout<<"********************************************"<<endl;
cout<<"1. 录入每个学生的学号、姓名和各科考试成绩"<<endl;
cout<<"2. 计算每个学生的总分和平均分"<<endl;
cout<<"3. 按每个学生的总分由低到高排出名次"<<endl;
cout<<"4. 按姓名的字典顺序排出成绩单"<<endl;
cout<<"5. 按学号由小到大排出名次"<<endl;
cout<<"6. 按姓名查询学生成绩排名及其各科考试成绩"<<endl;
cout<<"7. 统计各分数段的学生人数及所占的百分比"<<endl;
cout<<"8. 打印学生成绩"<<endl;
cout<<"9.退出"<<endl;
cout<<"********************************************"<<endl;
cout<<"请输入你的选择:"<<endl;
cin>>number;
if(1!=number&&9!=number)
{
cout<<"未录入学生学号,姓名和各科考试成绩,请先录入数据";
system("pause");
continue;
}
cout<<"根据用户输入的选项执行相应的操作:"<<endl;
switch(number)
{
case 1:
input(s,n);
system("pause");
break;
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
cout<<"程序运行结束!"<<endl;
exit(0);
}
}
}

  • 好问题 提建议
  • 收藏

2条回答 默认 最新

  • CSDN专家-link 2021-11-26 07:25
    已采纳

    你是指input函数只被调用了一次,还是input函数中的输入循环只执行了一次?
    n值在input中进行输入是有问题的啊,函数外部是无法知道到底输入了几个学生信息的。n最好定义为指针,这样能够把n值返回给调用代码,确保后续的学生信息处理能够知道有多少个学生

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 没看到对变量n赋值呀,初始值是0哦。
    input(s,n);

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题