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* 是什么意思?
形参和实参不同吗?小白 求大神指导

c

2个回答

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

形参和实参不同,一个是float的变量,而令外一个为float*的指针(指的就是数组),所以要将传递的形参和实参一致才行,还有你的代码没标明哪里出错了,根本不好找错误。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐