|
发表于 2013-12-11 22:14:47
|
显示全部楼层
本帖最后由 maomingkun 于 2013-12-11 22:19 编辑
#include <stdio.h>
main()
{
int a[5]={7,4,3,5,2};
int i,j,x=0,y=0,k=1,max,min;
float sum=0.0;
for(i=0;i<5;i++)
{
for (j=0;j<5;j++)
{
if (a==a[j]&&i!=j)//如果两个数相同,a不算入sum
{
x=0;
y++;//判断有几个数相同,当有三个数相同时,1跟2比,y++,然后跳出循环;然后2跟1比;3跟1比,所以正好求出几个数相同
break;
}
x=1;//x==1时,说明没有与a重复的a[j]。
}
if (x==1)//下边是将不重复的数进行运算
{
if (k>=1)
{
max=a;//将没有重复的第一个数赋值给max和min用于初始化这两个变量
min=a;
k-=1;//这个if语句仅使用一次
}
max=max>a?max:a;//求出最大值
min=min<a?min:a;//求出最小值
sum+=a; //求和
printf("%d\t",a);
}
}
printf("\n");
switch (y)//判断有几个数相同,根据不同的值有不同的输出。这些你自己完善一下吧
{
case 0:
{
sum=sum-max-min;
printf("有5个不同的数, 去掉最大数%d和最小数%d,总和是%d,平均数是%1.1f\n",max,min,(int)sum,sum/3);
break;
}
case 2:
{
sum=sum-max-min;
printf("有3个不同的数, 去掉最大数%d和最小数%d,总和是%d,平均数是%1.1f\n",max,min,(int)sum,sum/1);
break;
}
case 3:
{
break;
}
case 4:
{
printf("有1个不同的数, 和是%d,平均数是%d\n",(int)sum,(int)sum);
break;
}
case 5:
{
printf("5个数都相同!");
break;
}
}
} |
|