佐佐人登山
2021-11-03 21:07
采纳率: 66.7%
浏览 590

C语言查找数组中的最大值和最小值、计算平均值

1、定义一个大小为10的整型一维数组d和大小为6的单精度浮点型数组x,要求使用符号常量代替10和6(如 #define M 6,M即为符号常量,代表6),将数组d初始化为“10, 2, 3, 4, 5, 50, 11, 20, 10, 9”。应用循环语句,从键盘给数组x的各元素输入数据,注意数据类型和输入格式字符匹配,要求数据大小不相等。
2、查找并输出数组d中的最大值和最大值对应的下标; 查找并输出数组d中的最小值和最小值对应的下标。在不同行输出最大值和最小值及其下标。
3、求数组x中各元素之和的平均值并输出平均值(保留2位小数),另外输出x中元素小于平均值的所有元素的下标和元素值,输出元素数据保留2位小数,数据项之间有空格,每个元素输出在不同的行。
按以上要求编写程序。

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

2条回答 默认 最新

  • 最佳回答
    #include <stdio.h>
    #define N 10
    #define M 6
    int main()
    {
        int d[N]={10,2,3,4,5,50,11,20,10,9};
        float x[M];
        int i;
        int maxv=d[0],maxIndex = 0,minv=d[0],minIndex =0;
        float avg = 0;
        int sum = 0;
        //给x赋值
        printf("请输入%d个大小不等的浮点型数据:",M);
        for(i=0;i<M;i++)
            scanf("%f",&x[i]);
    
        //找d中的最大值和最小值
        for (i=1;i<N;i++)
        {
            if(d[i] > maxv)
            {
                maxv = d[i];
                maxIndex = i;
            }
            if(d[i] < minv)
            {
                minv = d[i];
                minIndex = i;
            }
        }
        printf("数组d中的最大值为%d,下标为%d\n",maxv,maxIndex);
        printf("数组d中的最小值为%d,下标为%d\n",minv,minIndex);
    
        //计算平均值
        for(i=0;i<M;i++)
            avg += x[i];
        avg=avg/M;
    
        printf("数组x的平均值为%.2f\n",avg);
        //求小于平均值的下标和
        printf("数组x中小于平均值的值及其下标:\n");
        for (i=0;i<M;i++)
        {
            if(x[i] < avg)
                printf("值:%.2f 下标:%d\n",x[i],i);
        }
        return 0;
    }
    
    
    评论
    解决 无用
    打赏 举报
查看更多回答(1条)