sinat_24343049 2015-05-24 00:44 采纳率: 80%
浏览 1873
已采纳

c语言数组单科成绩管理系统

#include
#include
#include
#include
#define NUM 5
void PRINT(float a[]);
void SUMAVERAGE(float a[]);
void MAXMIN(float a[]);
void NUMBER(float a[]);
int main()
{
char password[10]={"123456"};
char ch[10];
float score[NUM];
int i,j=1,k=1;
while(j)
{
for(i=0;i<10;i++)
{
scanf("%c",&ch[i]);
printf("*");
if(ch[i]="/r");
break;
}
if(strcmp(password,ch)==1)
{
system("cls");
printf("\n\n");
printf("\t\t|--------------------------------|\n");
printf("\t\t| |\n");
printf("\t\t| 1-录入学生成绩 |\n");
printf("\t\t| 2-显示学生成绩 |\n");
printf("\t\t| 3-显示总分和平均分 |\n");
printf("\t\t| 4-显示最高分和最低分 |\n");
printf("\t\t| 5-显示各分段人数 |\n");
printf("\t\t| 0-退出 |\n");
printf("\t\t| |\n");
printf("\t\t|--------------------------------|\n");
while(k);
{

            scanf("%d",&k);
            switch(k)
                {
                    case 1:
                    for(i=0;i<NUM;i++)
                    {
                        printf("请输入第%d的学生的成绩:\n",i+1);
                        scanf("%f",&score[i]);
                    }
                    break;
                    case 2:PRINT(score[NUM]);break;
                    case 3:SUMAVERAGE(score[NUM]);break;
                    case 4:MAXMIN(score[NUM]);break;
                    case 5:NUMBER(score[NUM]);break;
                    case 0;exit(0); 
                }
        }
        }
    else
    printf("密码错误,请重新输入"); 
}
return 0;

}
void PRINT(float a[])
{
int i;
for(i=0;i {
printf("第%d个学生成绩:%.2f\n",i+1,a[i]);
}
}
void SUMAVERAGE(float a[])
{
int i;
float sum=0,average;
for(i=0;i sum=sum+a[i];
average=sum/NUM;
printf("总分:%.2f\n",sum);
printf("平均分:%.2f",average);
}
void MAXMIN(float a[])
{
float max,min;
int i;
max=a[0];
min=a[0];
for(i=1:i {
if(a[i]>max)
max=a[i];
if(a[i]<min)
min=a[i];
}
printf("最高分:%.2f",max);
printf("最低分:%.2f",min);
}
void NUMBER(float a[])
{
int i,j,p=0,q=0,m=0,n=0,x=0;
for(i=0;i<NUM;i++)
j=a[i]/10;
switch(j)
{
case 10:
case 9:p++;break;
case 8:q++;break;
case 7:m++;break;
case 6:n++;break;
case 5:x++;break;
case 4:;
case 3:;
case 2:;
case 1:;
}
printf("90-100的人数为%d\n",p);
printf("80-89的人数为%d\n",q);
printf("70-79的人数为%d\n",m);
printf("60-69的人数为%d\n",n);
printf("60分以下的为%d\n",x);
}

编译提示出好多错误 函数无法从float 转为float* 是什么意思?
形参和实参不同吗?小白 求大神指导

  • 写回答

2条回答

  • longzzhiyue 2015-05-24 01:50
    关注

    一 while(k)既然用k变量了,循环里面还用用 scanf("%d",&k)有点不合适;
    二PRINT(score[NUM])这个是单个值,你应该传递过去一个首地址吗,其他调用函数一样
    三switch和else搭配很少见吧

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

报告相同问题?

悬赏问题

  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿