#include<stdio.h>
int main()
{
int a[10]={10,51,32,72,3,9,26,90,87,60},i,flag1,flag2;
int max,min,s=0,aver;//s初始化赋值0
max=a[0];min=a[0];//现将最小值,最大值初始化赋值
for(i=0;i<10;i++)//利用for循环逐个判断
{
if(max<a[i])
{
max=a[i];flag1=i;//max小于数组中的元素值时,更新max和flag1(下标)
}
if(min>a[i])
{
min=a[i];flag2=i;//min大于数组中的元素值时,更新min和flag2(下标)
}
s=s+a[i];
}
printf("最大值:%d 下标:%d\n",max,flag1);
printf("最小值:%d 下标:%d\n",min,flag2);
aver=s/10;//求平均
int count=0;//大于平均值计数
for(i=0;i<10;i++)
{
if(aver<a[i])
{
count++;
}
}
printf("高于平均值个数:%d",count);
}
使用指针操作,如下:
#include<stdio.h>
int main()
{
int a[10] = { 10,51,32,72,3,9,26,90,87,60 },*p,max,min,num_max,num_min,sum=0,count=0;
float ave;
p = a; //指针指向数组
max = min = a[0];
for (int i=0; i<10; i++)
{
if (*(p + i) > max) //求最大值及下标
{
max = *(p + i);
num_max = i;
}
if (*(p + i) < min) //求最小值及下标
{
min = *(p + i);
num_min = i;
}
sum += *(p + i); //求和
}
ave = sum / 10.0; //求平均值
for (int i = 0; i<10; i++) //求高于平均值的个数
if (*(p+i) > ave)
count++;
printf("这组数的最大值是%d,在数组中的下标为%d\n", max, num_max);
printf("这组数的最小值是%d,在数组中的下标为%d\n", min, num_min);
printf("这组数的平均值是%f,高于平均值的数据个数为%d\n", ave, count);
return 0;
}