#输入5 个学生的数学、语文、英语 3 门课程的成绩,计算并输出每一门课程的平均成绩和每一位学生的平均成绩。
#初学函数调用,请求指出代码中的问题,或者发布正确代码,谢谢
#include
#define M 5
#define N 3
float RAver(float score[M][N]);
float CAver(float score[M][N]);
int main()
{
int score[M][N],i,n;
printf("每个学生的平均分:\n");
float RAver(float score[M][N]);
float CAver(float score[M][N]);
return 0;
}
float RAver(float score[M][N])
{
int score[][N],i,n;
float aver1=0;
for(i=0;ifor(n=0,aver1=0;nscanf("%d",&score[i][n]);
aver1 += score[i][n] / 3.;
printf("%d\t", score[i][n]);
}
printf("%.1f\n", aver1);
}
float CAver(float score[M][N])
{
float b1,b2,b3;
for(int i=0;ifor(float n=0,c=0;nfor (i = 0; i < M; i++)
{
b1 += score[i][0] ;
b2 += score[i][1] ;
b3 += score[i][2] ;
}
printf("每门课的平均分:\n");
printf("%2.1f\t%2.1f\t%2.1f\t", b1/5., b2/5., b3/5.);
}
}
你的代码中
float RAver(float score[M][N])
{
int score[][N],i,n;
这里在参数中有score,然后又在函数体定义了score,属于重复声明。其他没细看,帮你重写了份
代码和运行结果如下,望采纳
#include <stdio.h>
// 函数声明
float calculateAverage(float arr[], int size);
int main() {
// 输入学生成绩
float math[5], chinese[5], english[5];
for (int i = 0; i < 5; i++) {
printf("请输入第%d个学生的成绩:\n", i+1);
scanf("%f%f%f", &math[i], &chinese[i], &english[i]);
}
// 计算每一门课程的平均成绩
float avgMath = calculateAverage(math, 5);
float avgChinese = calculateAverage(chinese, 5);
float avgEnglish = calculateAverage(english, 5);
// 计算每一位学生的平均成绩并输出
for (int i = 0; i < 5; i++) {
float avgStudent = (math[i] + chinese[i] + english[i]) / 3;
printf("第%d个学生的平均成绩为%.2f\n", i+1, avgStudent);
}
// 输出每一门课程的平均成绩
printf("数学的平均成绩为%.2f\n", avgMath);
printf("语文的平均成绩为%.2f\n", avgChinese);
printf("英语的平均成绩为%.2f\n", avgEnglish);
return 0;
}
// 计算数组中元素的平均值
float calculateAverage(float arr[], int size) {
float sum = 0;
for (int i = 0; i < size; i++) {
sum += arr[i];
}
return sum / size;
}
该回答引用chatgpt:
#include <stdio.h>
int main() {
int math[5], chinese[5], english[5]; // 定义存储成绩的数组
float mathAvg = 0, chineseAvg = 0, englishAvg = 0; // 初始化各科平均分
float studentAvg[5]; // 存储每个学生的平均分
// 输入每个学生的成绩
for (int i = 0; i < 5; i++) {
printf("请输入第%d个学生的数学、语文、英语成绩:", i + 1);
scanf("%d%d%d", &math[i], &chinese[i], &english[i]);
// 计算每门课的总分
mathAvg += math[i];
chineseAvg += chinese[i];
englishAvg += english[i];
// 计算每个学生的平均分
studentAvg[i] = (math[i] + chinese[i] + english[i]) / 3.0;
}
// 计算每门课的平均分
mathAvg /= 5;
chineseAvg /= 5;
englishAvg /= 5;
// 输出每门课的平均分
printf("数学平均分:%.2f\n", mathAvg);
printf("语文平均分:%.2f\n", chineseAvg);
printf("英语平均分:%.2f\n", englishAvg);
// 输出每个学生的平均分
for (int i = 0; i < 5; i++) {
printf("第%d个学生的平均分为:%.2f\n", i + 1, studentAvg[i]);
}
return 0;
}
好的教学资源永远是我们学习的第一步
在这里我建议以视频为主,书本为辅助
C语言的书籍繁多而杂,有很多热销书籍并非出自名门大家,有纰漏在所难免。作为初学者的我们肯定看不出这些纰漏,但它可能会把我们的学习引入死胡同。
视频同样也会有错误的地方,这也是为何我们需要寻找优质教学视频
在看视频的基础上,复以书本练习为辅助,方为学习妙计(个人观点)
在这里强烈推荐b站比特鹏哥的C语言教学视频 [连接]
讲的非常非常非常详细,比我之前在某堂在线找到的不知名视频好太多了(那个视频里老师就对着你念ppt,枯燥乏味无干货)
这里推荐大家直接去看最新版本的视频,画质更好。内容新旧基本是一样的
找完视频之后请立马开动,收进收藏夹只会让你开学了进度还是0%
不过想必来csdn看博客的你已经不是小菜鸡了(doge)