c语言编程,输入n个数求其最大数最小数和平均值

如题所述

/*这个是借用了下楼上哥们的代码,lz要求n不确定,就只好动态分配内存了*/
#include<stdio.h>
#include<stdlib.h>
int main()
{
   int n,i,j,tmp,sum;
    int *a=NULL;
printf("请输入n的值:\n");
scanf("%d",&n);
    a=(int*)malloc(n*sizeof(int));//动态内存分配,你输入n个数字,分配n个数字的空间即可
printf("请输入%d个数:\n",n);
for(i=0;i<n;i++)
   {scanf("%d",&a[i]); //录入数据。
    sum=sum+a[i];      //直接求和,方便后面求平均值 
    } 
for(i=0;i<n-1;i++)
  for(j=i+1;j<n;j++)
    if(a[i]<a[j])//此处为选择排序法,降序,若升序将”<“改为“>” 
      {
        tmp=a[i];
        a[i]=a[j];
        a[j]=tmp;         
       }
printf("平均值为%d,最大值为%d,最小值为%d",sum/n,a[0],a[n-1]);
printf("排序后的数组为:\n");
for(i=0;i<n;i++)
  printf("%d  ",a[i]);
system("pause");  
return(0);
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-12
#include<stdio.h>
int main()
{
int n;
double sum=0,i,tmp,a,b,c;
scanf("%d",&n);
scanf("%lf",&b);
c=b;
sum=b;
for(i=0;i<n-1;i++)
{
scanf("%lf",&tmp);
if(b>=tmp)
{
b=tmp;
}
if(c<=tmp)
{
c=tmp;
}
sum+=tmp;
}
a=sum/n;
printf("输出的平均数是%lf输出的最大数是%lf输出的最小数是%lf.\n",a,c,b);
return 0;
}
第2个回答  2013-11-12
#include<stdio.h>
#include<stdlib.h>
int main()
{int n,i,j,tmp,sum,a[1000];
printf("请输入n的值:\n");
scanf("%d",&n);
printf("请输入%d个数:\n",n);
for(i=0;i<n;i++)
{scanf("%d",&a[i]); //录入数据。
sum=sum+a[i]; //直接求和,方便后面求平均值
}
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]<a[j])//此处为选择排序法,降序,若升序将”<“改为“>”
{
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
printf("平均值为%d,最大值为%d,最小值为%d",sum/n,a[0],a[n-1]);
printf("排序后的数组为:\n");
for(i=0;i<n;i++)
printf("%d ",a[i]);
system("pause");
return(0);
}追问

如果我输入1001个数那你怎么办?你的数组只有1000个

本回答被提问者和网友采纳
相似回答