/* 编写一个程序, 提示用户输入 3 组数, 每组数包含 5 个 double 类型的数(假
设用户都正确地响应, 不会输入非数值数据)。该程序应完成下列任务。
a.把用户输入的数据储存在 3×5 的数组中
b.计算每组(5 个)数据的平均值
c.计算所有数据的平均值
d.找出这 15 个数据中的最大值*/
#include<stdio.h>
int main()
{
int i,j;
//double a[5],b[5],c[5];
double alt[3][5];
double sum[3] = { 0,0,0 },sum_alt=0;
double aver[3],aver_alt;
//double aver_a, aver_b, aver_c, aver_alt;
printf("please input three groups number which have five numbers:\n");
for (i = 0; i < 3; i++)
{printf("the NO.%d group is:\n", i+1);
for(j=0;j<5;j++)
scanf_s("%lf", &alt[i][j]);
}//超过两行加括号
//alt[3][5] = a[1] + a[2] + a[3];
for (i = 0; i < 3; i++)
for (j = 0; j < 5; j++)
sum[i] = sum[i] + alt[i][j];
for (i = 0; i < 3; i++)
{
aver[i] = sum[i] / 3;
sum_alt = sum_alt + sum[i];
printf("the NO.%d average is %5.2lf\n", i+1, aver[i]);
}
aver_alt = sum_alt / 3;
printf("the altogher average is %5.2lf", aver_alt);//sum_alt / 3);
return 0;
}
(1)aver[i] = sum[i] / 3; 这里应该是除以5,不是除以3
(2)你没有求最大值。
(3)aver_alt = sum_alt / 3; //这里除以15,不是除以3
代码修改如下:
#include<stdio.h>
int main()
{
int i,j;
//double a[5],b[5],c[5];
double alt[3][5];
double sum[3] = { 0,0,0 },sum_alt=0;
double aver[3],aver_alt;
double maxv;
//double aver_a, aver_b, aver_c, aver_alt;
printf("please input three groups number which have five numbers:\n");
for (i = 0; i < 3; i++)
{
printf("the NO.%d group is:\n", i+1);
for(j=0;j<5;j++)
{
scanf_s("%lf", &alt[i][j]);
//求最大值
if(i==0 && j==0)
maxv = alt[i][j];
else
{
if(alt[i][j]>maxv)
maxv = alt[i][j];
}
}
}//超过两行加括号
//alt[3][5] = a[1] + a[2] + a[3];
for (i = 0; i < 3; i++)
for (j = 0; j < 5; j++)
sum[i] = sum[i] + alt[i][j];
for (i = 0; i < 3; i++)
{
aver[i] = sum[i] / 5; //这里是除以5
sum_alt = sum_alt + sum[i];
printf("the NO.%d average is %5.2lf\n", i+1, aver[i]);
}
aver_alt = sum_alt / 15; //这里除以15
printf("the altogher average is %5.2lf\n", aver_alt);//sum_alt / 3);
//显示最大值
printf("max=%g\n",maxv);
return 0;
}
每组5个值,平均数要除以5,
aver[i] = sum[i] / 5; 应该除以5
全部的要除以15
aver_alt = sum_alt / 15; 应该除以15
你题目的解答代码如下:
#include <stdio.h>
int main()
{
int i, j;
//double a[5],b[5],c[5];
double alt[3][5];
double sum[3] = {0, 0, 0}, sum_alt = 0;
double aver[3], aver_alt;
//double aver_a, aver_b, aver_c, aver_alt;
printf("please input three groups number which have five numbers:\n");
for (i = 0; i < 3; i++)
{
printf("the NO.%d group is:\n", i + 1);
for (j = 0; j < 5; j++)
scanf_s("%lf", &alt[i][j]);
} //超过两行加括号
//alt[3][5] = a[1] + a[2] + a[3];
for (i = 0; i < 3; i++)
for (j = 0; j < 5; j++)
sum[i] = sum[i] + alt[i][j];
for (i = 0; i < 3; i++)
{
aver[i] = sum[i] / 5; //3改成5
sum_alt = sum_alt + sum[i];
printf("the NO.%d average is %5.2lf\n", i + 1, aver[i]);
}
aver_alt = sum_alt / 15; //改成15
printf("the altogher average is %5.2lf", aver_alt); //sum_alt / 3);
return 0;
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
int main()
{
int i,j;
//double a[5],b[5],c[5];
double alt[3][5];
double sum[3] = { 0,0,0 },sum_alt=0;
double aver[3],aver_alt;
//double aver_a, aver_b, aver_c, aver_alt;
printf("please input three groups number which have five numbers:\n");
for (i = 0; i < 3; i++)
{ printf("the NO.%d group is:\n", i+1);
for(j=0; j<5; j++)
//scanf_s("%lf", &alt[i][j]);
scanf("%lf", &alt[i][j]);
}//超过两行加括号
//alt[3][5] = a[1] + a[2] + a[3];
for (i = 0; i < 3; i++)
for (j = 0; j < 5; j++)
sum[i] = sum[i] + alt[i][j];
for (i = 0; i < 3; i++)
{
aver[i] = sum[i] / 5;
sum_alt = sum_alt + sum[i];
printf("the NO.%d average is %5.2lf\n", i+1, aver[i]);
}
aver_alt = sum_alt /15;
printf("the altogher average is %5.2lf", aver_alt);//sum_alt / 3);
return 0;
}