Modine 2021-11-26 00:27 采纳率: 66.7%
浏览 26
已结题

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

#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值返回给调用代码,确保后续的学生信息处理能够知道有多少个学生

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月4日
  • 已采纳回答 11月26日
  • 修改了问题 11月26日
  • 创建了问题 11月26日

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料