更如. 2022-01-07 23:11 采纳率: 66.7%
浏览 52
已结题

你好,请问代码运行结果不正确是什么问题呢

/* 编写一个程序, 提示用户输入 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;
}

  • 写回答

3条回答 默认 最新

  • 关注

    (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;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月7日
  • 已采纳回答 1月7日
  • 创建了问题 1月7日

悬赏问题

  • ¥15 preLaunchTask"C/C++: aarch64- apple-darwin22-g++-14 生成活动 文件”已终止,退出代码为-1。
  • ¥18 关于#贝叶斯概率#的问题:这篇文章中利用em算法求出了对数似然值作为概率表参数,然后进行概率表计算,这个概率表是怎样计算的呀
  • ¥20 C#上传XML格式数据
  • ¥15 elementui上传结合oss接口断点续传,现在只差停止上传和继续上传,各大精英看下
  • ¥100 单片机hardfaulr
  • ¥20 手机截图相片分辨率降低一半
  • ¥50 求一段sql语句,遇到小难题了,可以50米解决
  • ¥15 速求,对多种商品的购买力优化问题(用遗传算法、枚举法、粒子群算法、模拟退火算法等方法求解)
  • ¥100 速求!商品购买力最优化问题(用遗传算法求解,给出python代码)
  • ¥15 虚拟机检测,可以是封装好的DLL,可付费