谁可以帮我看看我这个C语言程序错在哪啊?查询成绩和统计程序都弄不出!··谢谢了

2025-04-02 07:17:01
推荐回答(3个)
回答1:

把你的遗留问题全解决了
输入学生姓名也搞好了
一选3,就闪一下就没了也处理了
№.2成绩统计
№.1成绩录入

请输入学号: 1

请输入姓名: ee

语文成绩: 44

数学成绩: 55

请输入学号: 2

请输入姓名: gg

语文成绩: 66

数学成绩: 77

请输入学号:
№.2成绩查询

请输入要查询的学生号: 2

学号:3

姓名:4395100

语文成绩为: 88.00

数学成绩为: 99.00

按任意键返回主菜单!

№.2成绩统计

学生ee的总成绩为;99.00分
学生gg的总成绩为;143.00分
学生gg的总成绩为;143.00分

#include
#include
#include
#include "string.h"
#define N 3 /*学生人数*/
struct student
{
int num; /*学号*/
char name[20]; /*姓名*/
float chinesescore;
float mathscore;
float sum;
}
stu[N]; /*学生数*/
void input();
void select(); /*查询*/
void statistics(); /*统计*/
void menu();
void input()
{
int i;
printf("\t\t№.1成绩录入\n\n");
for(i=0;i {
printf("\n请输入学号: ");
scanf("%d",&stu[i].num);
printf("\n请输入姓名: ");
getchar();
gets(stu[i].name);

printf("\n语文成绩: ");
scanf("%f",&stu[i].chinesescore);
printf("\n数学成绩: ");
scanf("%f",&stu[i].mathscore);
}
printf("\n\n");
getchar();
printf("输入完毕!按任意键返回主菜单!");
getchar();
}

/*2.查询*/
void select(int i)
{
printf("\n学号:%d\n",stu[i].num);
printf("\n姓名:%d\n",stu[i].name);
{
printf("\n语文成绩为: ");
printf("%4.2f\n",stu[i].chinesescore);
printf("\n数学成绩为: ");
printf("%4.2f\n",stu[i].mathscore);
}
getchar();
printf("\n按任意键返回主菜单!");
getchar();

}
/*3.学生总成绩*/
void statistics()
{
// float chinesescore[10],mathscore[10];
// float sum=0;
int i=0;
printf("\t\t№.2成绩统计\n\n");
for(i=0;i {
stu[i].sum=stu[i].chinesescore+stu[i].mathscore;
printf("\n学生%s的总成绩为;",stu[i].name);
printf("%4.2f分",stu[i].sum);
}
getchar();
getchar();

}
/*排序*/

void sort()
{
int i;
float temp;
for(i=0;i if(stu[i].sum {
temp=stu[i].sum;
stu[i].sum=stu[i+1].sum;
stu[i+1].sum=temp;
}
printf("\n\n学生总成绩排名:");
for(i=0;i<3;i++)
{
printf("\n第%d名:%0.2f分",i+1,stu[i].sum);
}
getchar();
printf("\n\n按任意键返回主菜单!");
getchar();
}
void menu()
{
int num=0;
int n=0;
printf("\n\t\t\t学生成绩管理系统\n\n");
printf("\t\t\t№.1成绩录入\n\t\t\t№.2成绩查询\n\t\t\t№.3成绩统计\n\t\t\t№.4退出系统\n");
printf("\t\t\tchoose:");
scanf("%d",&num);
switch(num)
{
case 1:
system("cls");
input();
break;
case 2:
system("cls");
printf("\t\t№.2成绩查询\n\n");
printf("请输入要查询的学生号: ");
scanf("%d",&n);
select(n);
break;
case 3:
system("cls");
statistics();
break;
default:
exit(0);
break;
}
}
void main()
{
while(1)
{
system("cls"); /*清屏*/
menu();
}
}

回答2:

printf("请输入学号: ");
scanf("%d",&stu[i].name);
printf("\n语文成绩: ");
scanf("%d",&stu[i].chinesescore);
printf("\n数学成绩: ");
scanf("%d",&stu[i].mathscore);
printf("姓名:%d\n",stu[i].name);
{
printf("\n语文成绩为: ");
printf("%d\n",stu[i].chinesescore);
printf("\n数学成绩为: ");
printf("%d\n",stu[i].mathscore);
}

类型错误!!!!!%d是输入int类型 你对照一下
printf("0.2f分",stu[i].sum);少了个%号
-------------------------------以上是错误-------------------------------------------------------
学生成绩管理系统

№.1成绩录入
№.2成绩查询
№.3成绩统计
№.4退出系统
choose:1
sh: cls: command not found
№.1成绩录入

请输入学号: 1

语文成绩: 99

数学成绩: 99
请输入学号: 2

语文成绩: 88

数学成绩: 88
请输入学号: 3

语文成绩: 7

数学成绩: 7

输入完毕!按任意键返回主菜单!
sh: cls: command not found

学生成绩管理系统

№.1成绩录入
№.2成绩查询
№.3成绩统计
№.4退出系统
choose:2
sh: cls: command not found
№.2成绩查询

请输入要查询的学生号: 1
学号:0
姓名:2

语文成绩为: 88.00

数学成绩为: 88.00

按任意键返回主菜单!
sh: cls: command not found

学生成绩管理系统

№.1成绩录入
№.2成绩查询
№.3成绩统计
№.4退出系统
choose:3
sh: cls: command not found
№.2成绩统计

sh: cls: command not found
学生的总成绩为;0.00分
学生成绩管理系统

№.1成绩录入
№.2成绩查询
№.3成绩统计
№.4退出系统
choose:4
----------------------------以上是调试后执行结果------------------------------------
#include
#include
//#include
#define N 3 /*学生人数*/
struct student
{
int num; /*学号*/
char name[20]; /*姓名*/
float chinesescore;
float mathscore;
float sum;
}
stu[N]; /*学生数*/
void input();
void _select(int); /*查询*/
void statistics(); /*统计*/
void menu();
void input()
{
int i;
printf("\t\t№.1成绩录入\n\n");
for(i=0;i {
printf("请输入学号: ");
scanf("%s",stu[i].name);
printf("\n语文成绩: ");
scanf("%f",&stu[i].chinesescore);
printf("\n数学成绩: ");
scanf("%f",&stu[i].mathscore);
}
printf("\n\n");
getchar();
printf("输入完毕!按任意键返回主菜单!");
getchar();
}

/*2.查询*/
void _select(int i)
{
printf("学号:%d\n",stu[i].num);
printf("姓名:%s\n",stu[i].name);
{
printf("\n语文成绩为: ");
printf("%.2f\n",stu[i].chinesescore);
printf("\n数学成绩为: ");
printf("%.2f\n",stu[i].mathscore);
}
getchar();
printf("\n按任意键返回主菜单!");
getchar();

}
/*3.学生总成绩*/
void statistics()
{
float chinesescore[10],mathscore[10];
float sum=0;
int i=0;
printf("\t\t№.2成绩统计\n\n");
for(i=0;i {
sum=chinesescore[i]+mathscore[i];
}
printf("\n学生%s的总成绩为;",stu[i].name);
printf("%0.2f分",stu[i].sum);
}
/*排序*/

void sort()
{
int i;
float temp;
for(i=0;i if(stu[i].sum {
temp=stu[i].sum;
stu[i].sum=stu[i+1].sum;
stu[i+1].sum=temp;
}
printf("\n\n学生总成绩排名:");
for(i=0;i<3;i++)
{
printf("\n第%d名:%0.2f分",i+1,stu[i].sum);
}
getchar();
printf("\n\n按任意键返回主菜单!");
getchar();
}
void menu()
{
int num=0;
int n=0;
printf("\n\t\t\t学生成绩管理系统\n\n");
printf("\t\t\t№.1成绩录入\n\t\t\t№.2成绩查询\n\t\t\t№.3成绩统计\n\t\t\t№.4退出系统\n");
printf("\t\t\tchoose:");
scanf("%d",&num);
switch(num)
{
case 1:
system("cls");
input();
break;
case 2:
system("cls");
printf("\t\t№.2成绩查询\n\n");
printf("请输入要查询的学生号: ");
scanf("%d",&n);
_select(n);
break;
case 3:
system("cls");
statistics();
break;
default:
exit(0);
break;
}
}
int main()
{
while(1)
{
system("cls"); /*清屏*/
menu();
}
return 0;
}
----------------------------------以上修改后代码------------------------------

回答3:

#define N 3 /*学生人数*/
struct student
{
int num; /*学号*/
char name[20]; /*姓名*/
float chinesescore;
float mathscore;
float sum;
}
stu[N]; /*学生数*/
void input();
void select(); /*查询*/
void statistics(); /*统计*/
void menu();
void input()
{
int i;
printf("\t\t№.1成绩录入\n\n");
for(i=0;i {
printf("请输入学号: ");
scanf("%d",&stu[i].num);
printf("请输入姓名: ");
scanf("%s",stu[i].name);
printf("\n语文成绩: ");
scanf("%f",&stu[i].chinesescore);
printf("\n数学成绩: ");
scanf("%f",&stu[i].mathscore);
}
printf("\n\n");
getchar();
printf("输入完毕!按任意键返回主菜单!");
getchar();
}

/*2.查询*/
void select(int i)
{
printf("学号:%d\n",stu[i].num);
printf("姓名:%s\n",stu[i].name);

printf("\n语文成绩为: ");
printf("%g\n",stu[i].chinesescore);
printf("\n数学成绩为: ");
printf("%g\n",stu[i].mathscore);

getchar();
printf("\n按任意键返回主菜单!");
getchar();

}
/*3.学生总成绩*/
void statistics()
{

float sum=0;
int i=0;
printf("\t\t№.2成绩统计\n\n");
for(i=0;i {
stu[i].sum = stu[i].chinesescore + stu[i].mathscore;
printf("\n学生%s的总成绩为;",stu[i].name);
printf("%0.2f分",stu[i].sum);
}

printf("\n\n按任意键返回主菜单!");
getchar();
getchar();
}
/*排序*/

void sort()
{
int i;
float temp;
for(i=0;i if(stu[i].sum {
temp=stu[i].sum;
stu[i].sum=stu[i+1].sum;
stu[i+1].sum=temp;
}
printf("\n\n学生总成绩排名:");
for(i=0;i<3;i++)
{
printf("\n第%d名:%0.2f分",i+1,stu[i].sum);
}
getchar();
printf("\n\n按任意键返回主菜单!");
getchar();
}
void menu()
{
int num=0;
int n=0;
printf("\n\t\t\t学生成绩管理系统\n\n");
printf("\t\t\t№.1成绩录入\n\t\t\t№.2成绩查询\n\t\t\t№.3成绩统计\n\t\t\t№.4退出系统\n");
printf("\t\t\tchoose:");
scanf("%d",&num);
switch(num)
{
case 1:
system("cls");
input();
break;
case 2:
system("cls");
printf("\t\t№.2成绩查询\n\n");
printf("请输入要查询的学生号: ");
scanf("%d",&n);
select(n);
break;
case 3:
system("cls");
statistics();
break;
default:
exit(0);
break;
}
}
void main()
{
while(1)
{
system("cls"); /*清屏*/
menu();
}
}

把你的问题都解决了~~~