C++的编译器。
我发现你真是个人才
这么多错误居然也能写下去,佩服
你把 == 写成 =
写两个分号
哎呀,不说了,自己好好看下吧,帮你改了一下
那个输入的问题帮你解决了,这个倒不怪你,是经验的问题,在获取按键值时一般要先清一下输入缓存
.............
加油
#include "stdafx.h"
#include
#include
int m=1;
struct student
{
char name[10];
char num[2];
char sex[2];;
int a[3];
double ave;
}stu[5];
void print()
{
system("cls");
printf("|**************************************************|\n");
printf("|**************************************************|\n");
printf("*****************学生成绩管理系统*******************\n");
printf("|**************************************************|\n");
printf("|**************************************************|\n");
printf("|*************** 1.输入学生成绩 *******************|\n");
printf("|*************** 2.查看学生成绩 *******************|\n");
printf("|*************** 3.查找学生成绩 *******************|\n");
printf("|*************** 4.查看平均分排名 *****************|\n");
printf("|*************** 5.查看单科排名 *******************|\n");
printf("|*************** 0.退出系统 ***********************|\n");
printf(">>>>------------ 请选择(0-5)------------------<<<<\n");
printf("|************************************************|\n");
}
void input(int n)
{
int i,j;
printf("请输入学生学号,姓名,性别,和语数外成绩:\n");
for(i=0;i
fflush(stdin);
scanf("%s%s%s",stu[i].num,stu[i].name,stu[i].sex);
for(j=0;j<3;j++)
{
fflush(stdin);
scanf("%d",&stu[i].a[j]);
}
}
}
void show(int n)
{
int i,j;
printf("学号 姓名 性别 语文 数学 英语\n");
for(i=0;i
printf("-%c -%c -%c ",stu[i].num,stu[i].name,stu[i].sex);
for(j=0;j<3;j++)
{
printf("-%d ",stu[i].a[j]);
}
printf("\n");
}
}
void average(int n)
{
int sum=0;
for(int i=0;i
for(int j=0;j<3;j++)
{
sum+=stu[i].a[j];
}
stu[i].ave=sum*1.0/3;
sum=0;
}
}
void finda(int n)
{
char e,num1[10],name1[20];
int k=0,l=0;
printf("请选择1or2?");
fflush(stdin);
scanf("%c",&e);
if(e=='1')
{
printf("请输入要查到学生的学号:");
fflush(stdin);
gets(num1);
for(int i=0;i
if(num1==stu[i].num)
{
printf("学号 姓名 性别 平均成绩 语文 数学 英语 \n");
printf("%c %c %c %f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].ave);
for(int j=0;j<3;j++)
{
printf("%d ",stu[i].a[j]);
}
k++;
}
}
if(k==0) printf("没有你要查询的信息!\n");
}
else if(e='2')
{
printf("请输入要查到学生的姓名:");
fflush(stdin);
gets(name1);//这里会缓冲区溢出的,哥们
for(int i=0;i
if(name1==stu[i].name)
{
printf("学号 姓名 性别 平均成绩 语文 数学 英语\n");
printf("%c %c %c %f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].ave);
for(int j=0;j<3;j++)
{
printf("%d ",stu[i].a[j]);
}
l++;
}
}
if(l=0) printf("没有你要查询的信息!\n");
}
}
void find(int n)
{
printf("1.按学号查找 ** 2.按姓名查找");
finda(n);
}
void avepai(int n)
{
int i,j;
double t;
for(i=0;j
for(j=0;j
if(stu[j].ave
}
}
printf("学生成绩按平均分排名:\n");
printf("学号 姓名 性别 平均成绩\n");
for(i=0;i
printf("%c %c %c %f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].ave);
}
}
void rank(int n)
{
int i,j,k,t;
for(k=0;k<3;k++)
{
for(i=0;i
if(stu[j].a[k]
}
}
printf("语文成绩的排名:\n");
printf("学号 姓名 性别 语文\n");
for(i=0;i
printf("%c %c %c ",stu[i].num,stu[i].name,stu[i].sex);
for(j=0;j<3;j++)
printf("%d ",stu[i].a[j]);
}
printf("\n");
printf("数学成绩的排名:\n");
printf("学号 姓名 性别 语文\n");
for(i=0;i
printf("%c %c %c ",stu[i].num,stu[i].name,stu[i].sex);
for(j=0;j<3;j++)
printf("%d ",stu[i].a[j]);
}
printf("\n");
printf("英语成绩的排名:\n");
printf("学号 姓名 性别 语文\n");
for(i=0;i
printf("%c %c %c ",stu[i].num,stu[i].name,stu[i].sex);
for(j=0;j<3;j++)
printf("%d ",stu[i].a[j]);
}
}
void choose()
{
char ch;
printf("-->>请选择序号(0-5):");
fflush(stdin);
scanf("%c",&ch);
do
{
switch(ch)
{
case('0'):exit(0);break;
case('1'):input(m);break;
case('2'):show(m);break;
case('3'):find(m);break;
case('4'):avepai(m);break;
case('5'):rank(m);break;
default:
printf("您输入有误,请您重新输入:");
fflush(stdin);
scanf("%c",&ch);
break;
}
}while(ch=='0');
}
int main()
{
char y;
do
{
system("cls&&color 1B");
print();
choose();
printf("\n-->>还要继续吗?y/n:");
fflush(stdin);
scanf("%c",&y);
while(y!='y'&&y!='Y'&&y!='n'&&y!='n')
{
printf("您输入有误,请重新输入:");
fflush(stdin);
scanf("%c",&y);
}
}while(y=='Y'||y=='y');
return 0;
}
所有scanf("%c",&
在%c前加一个空格scanf(" %c",&
是编译错误吗?