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

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位小数,数据项之间有空格,每个元素输出在不同的行。
按以上要求编写程序。

#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;
}

#include"stdio.h"
main(){
int a[10],i,min,max,sum;
sum=0;
float m;
for(i=0;i<10;i++){
scanf("%d",&a[i]);
}
min=a[0];
max=a[0];
for(i=1;i<10;i++){
if(max<a[i]){
max=a[i];
}
}
for(i=1;i<10;i++){
if(min>a[i]){
min=a[i];
}
}
for(i=0;i<10;i++){
sum+=a[i];
}
m=sum/10;
printf("最大值:%d\n",max);
printf("最小值:%d\n",min);
printf("平均值:%f",m);
}