技术宅男♂️
2022-05-14 23:25
采纳率: 100%
浏览 8

我想用三个一维数组来分别输入三个班级的15名学生,这个为什么代码老是出错?(语言-c语言)

#include <stdio.h>
int main()
{
float average(float array[],int n);
float i,j,k;
float score1[15];
float score2[15];
float score3[15];
for(i=0;i<15;i++)
scanf(%f,&score1[i]);
for(j=0;j<15;j++)
scanf(%f,&score2[j]);
for(k=0;k<15;k++)
scanf(%f,&score3[k]);
printf("is%6.2f\n",average(score1,15));
printf("%6.2f\n",average(score2,15));
printf("%6.2f\n",average(score3,15));
return 0;
}
float average(float array[],int n);
{ int m;
float aver,sum=array[0];
for(m=1,m<n;m++)
sum=sum+array[m];
aver=sum/n;
return(aver);
}

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

  • 程序喵正在路上 2022-05-14 23:56
    最佳回答

    1、函数声明要写在main函数前面,不能写在main函数里面,不然你就得把整个函数的定义写到main函数前面

    img

    2、i、j、k要声明为 int 类型,它们只是用来计算循环的次数,没有第1.0次、第2.0次这种说法
    3、定义函数不要写多分号,比如图中的 float average(float array[], int n);

    img


    4、函数返回值不用加括号

    img

    修改完代码如下

    #include <stdio.h>
    
    float average(float array[], int n);
    int main()
    {
        int i, j, k;
        float score1[15];
        float score2[15];
        float score3[15];
        for (i = 0; i < 15; i++)
            scanf("%f", &score1[i]);
    
        for (j = 0; j < 15; j++)
            scanf("%f", &score2[j]);
    
        for (k = 0; k < 15; k++)
            scanf("%f", &score3[k]);
    
        printf("is%6.2f\n", average(score1, 15));
        printf("%6.2f\n", average(score2, 15));
        printf("%6.2f\n", average(score3, 15));
        return 0;
    }
    
    float average(float array[], int n)
    { 
        int m;
        float aver, sum = array[0];
        for (m = 1; m < n; m++)
            sum = sum + array[m];
        aver = sum / n;
        return aver;
    }
    
    评论
    解决 1 无用
    打赏 举报 编辑记录

相关推荐 更多相似问题