#include <stdio.h>
#include <string.h>
#define NUMBER 5 //学生人数
//1).编写函数average,对n个学生的成绩score,计算平均分数,并返回其值。
int arevage(int score[])
{
int total=0;
int i=0;
for (i=0;i<NUMBER;i++)
{
total+=score[i]; //总学生成绩
}
return total/NUMBER; //得出平均值
}
//2).编写函数grade,对n个学生的成绩score,分别统计及格人数c1和不及格的人数c2,并输出。
int grade(int score[])
{
int c1=0;//及格人数
int c2=0;//不及格人数
int i=0;
for (i=0;i<NUMBER;i++)
{
if(score[i]>60)
c1++;
else
c2++;
}
printf ("及格人数为: %d 人\n",c1);
printf ("不及格人数为: %d 人\n",c2);
}
//3).编写函数max,求n个学生的成绩score的最高分,并返回其值。
int max(int score[])
{
int i=0,j=0;
int _max=0;
for (i=0;i<NUMBER-1;i++)
{
for(j=i+1;j<NUMBER;j++)
{
if(score[i]>score[j])
{
_max=score[i];
score[i]=score[j];
score[j]=_max;
}
}
}
return score[i];
}
//4)、编写函数xx,对n个学生的成绩score进行排序,并输出。
int xx(int score[])
{
int i=0,j=0;
int _max=0;
for (i=0;i<NUMBER-1;i++)
{
for(j=i+1;j<NUMBER;j++)
{
if(score[i]>score[j])
{
_max=score[i];
score[i]=score[j];
score[j]=_max;
}
}
}
return 0;
}
/*5.)编写主函数main,通过键盘输入用户的选择步骤完成相应功能,用户输入1时调用average统计平均分,输入2时调用grade统计及格或不及格人数,输入3时调用max找最大值,输入4时调用xx对成绩排序,输入0时返回。
程序要求:合适繁荣提示语 */
int menu(int _getNumber)
{
int new;
int i=(int)_getNumber;
int studentScore[NUMBER]={10,70,61,90,100};
if(i=='q'||i=='Q')
{
exit(1);
}
while(i!=1&&i!=2&&i!=3&&i!=4)
{
printf ("$error :输入有误请重新输入!\a\n");
scanf("%d",&i);
printf ("hello word !\n");
//scanf("%d",&i);
}
while(i==1||i==2||i==3||i==4)
{
//计算机平均分
if (i==1)
{
printf ("平均成绩是:%d\n",arevage(studentScore));
//continue;
}
//统计合格与不合格的人数
if (i==2)
{
grade(studentScore);
//continue;
}
//最高成绩
if (i==3)
{
printf ("最高的成绩为: %d\n",max(studentScore));
}
//从小到大排序
if (i==4)
{
xx(studentScore);
for (i=0;i<NUMBER;i++)
{
printf ("从小到大排序后为:sutdent[%d] = %d\n",i,studentScore[i]);
}
}
printf ("$请再输入查询代号:");
scanf("%d",&i);
if(i!=1&&i!=2&&i!=3&&i!=4)
{
printf ("$error :输入有误请重新输入!\a\n");
if(scanf("%d",&i));
}
if(i=='q'&&i=='Q')
{
break;
}
//printf("i = %d",i);
if(i!=1&&i!=2&&i!=3&&i!=4)
{
printf ("$error :输入有误请重新输入!\a\n");
scanf("%d",&i);
}
}
}
int main(int argc,char *argv[])
{
int getNumber=0;
printf ("***************************************************\n\n");
printf (" 输入 【1】————————统计学生成绩\n");
printf (" 输入 【2】————————分别统计学生成绩及格人数和不及格的人数\n ");
printf ("输入 【3】————————统计学生的最高成绩\n ");
printf ("输入 【4】————————对学生成绩进行排序\n ");
printf ("输入 【q】或者【Q】————————退出程序\n ");
printf ("$你输入查询代号:");
scanf("%d",&getNumber);
menu(getNumber);
return 0;
}
主要是:让用户输入q,或者Q退出程序,输入1-4,输入其他报错,让用户重新输入
我调试了下是,当输入英文时,但scanf要求输入 整数类型,类型不一,里面的值不是本身的值,如何解决这个问题?