求大神给我解答一道c语言的题目,急急急!!

编写一个函数,求n个数中的最大值、最小值、平均值。要求主函数完成20个数的输入,子函数完成统计,最后输出结果。此外,最大值及最小值采用全局变量实现 怎么写呢 老师布置的作业 拜托了 一定给高分

#include <stdio.h>

int max,min,sum=0;

void find(int a[],int n)

{

 int i;

 min=max=a[0];

 for(i=0;i<n;i++)

 {

  if(min>a[i])

   min=a[i];

  if(max<a[i])

   max=a[i];

  sum+=a[i];

 }

}

void main()

{

 int a[20];

 printf("请输入20个数:\n");

 for(int i=0;i<20;i++)

  scanf("%d",&a[i]);

 find(a,20);

 for(i=0;i<20;i++)

 {

  printf("%4d",a[i]);

  if((i+1)%5==0)

   printf("\n");

 }

 printf("max=%d\tmin=%d\tsum=%d\n",max,min,sum);

}

刚调试了,完成了要求!我还把输入的数给你输一遍出来!

希望我的回答对你有帮助!

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-22
#include<stdio.h>
int max_num = 0;
int min_num = 0;
int ave_num = 0;
int FindMaxMinAve(int a[],int n)
{
int i;
int tmp_max = a[0];
int tmp_min = a[0];
int tmp_ave = 0;
int tmp_sum = 0;
for(i=1;i<n;i++)
{
if(a[i]>tmp_max)
{
tmp_max = a[i];
}
if(a[i]<tmp_min)
{
tmp_min = a[i];
}
tmp_sum+=a[i];
}
tmp_ave = tmp_sum/n;
ave_num = tmp_ave;
min_num = tmp_min;
max_num = tmp_max;
return 0;
}
int main(void)
{
int i;
int a[20];
for(i=0;i<20;i++)
{
scanf("%d",&a[i]);

}
FindMaxMinAve(a,20);
printf("maxnum is %d\n",max_num);
printf("minnum is %d\n",min_num);
printf("avenum is %d\n",ave_num);
fflush(stdin);
getchar();
return 0;
}
第2个回答  2013-06-22
#include <stdio.h>
double max,min,ave;
void count_max(double a[]) //求最大值 
{
int i;
max=a[0];
for(i=1;i<20;i++)
if(a[i]>max)
max=a[i];
}
void count_min(double a[]) //求最小值 
{
int i;
min=a[0];
for(i=1;i<20;i++)
if(a[i]<min)
min=a[i];
}
void count_ave(double a[]) //求平均值 
{
double sum=0;
int i; 
for(i=0;i<20;i++)
sum+=a[i];
ave=sum/20; 
}
int main()
{
    double a[20];
    int i;
    for(i=0;i<20;i++) //数据输入 
     scanf("%lf",&a[i]);
    
    count_max(a); //计算 
   count_min(a);
   count_ave(a);
  
    printf("最大值:%f\n",max); //输出 
    printf("最小值:%f\n",min); 
printf("平均值:%f\n",ave);   
    return 0;
}

第3个回答  2013-06-22
#include "stdio.h"
#include "stdlib.h" 
#define NUM_COUNT 20
int g_max;
int g_min;
float g_avr;

int comp(const void * a, const void * b)
{
return *(int*)b - *(int*)a;
}

void main() 

int a[NUM_COUNT];
int sum = 0;

for (int i = 0; i< NUM_COUNT; i++)
{
scanf("%d",a+i);
sum +=a[i];
}

g_avr = sum/NUM_COUNT;

qsort(a,NUM_COUNT,4,comp);

g_max = a[0];
g_min = a[NUM_COUNT - 1];

printf("平均数:%f  \n最大数:%d   \n最小数:%d\n", g_avr, g_max, g_min);
}

C语言问题,求大神解决,谢谢啦,我是小白,最好能够解释下。
题中,a=3 ,二进制为:0011;b=6,二进制值为:0110。所以(a^b)按位异或后的值为0101也就是5,左移两位后值(二进制)为:010100 也就是 :20

一道c语言题目 求大神指点下算法?
根据题意,随机生成红绿蓝球任意个数,并任意顺序排列。这里采用随机数实现。统计按红绿蓝顺序排列最少交换次数,我的思路是:第一步:循环将最后一个红色球与最靠前的其它两色球(并且满足位置在红球之前)交换。第二步:循环将最后一个绿球与最靠前的蓝球(必须在绿球之前)交换。include <stdio.h> ...

C语言题目,求大神解答
答案为C

一道C语言题目,看图~大神帮忙解答下吧!急急急急急!!在线等
答案是D 在C语言中数组赋值可以如A,那样,【】里面定义了长度5{}中有最大不超过5个值,则赋值成功 B在5个数值之内所以也是正确的 答案C,就是另外中赋值方法,在【】中不定义长度,因此数组a[]的实际长度取决于{}中的值的数量,也就是说在C答案中有5个0作为数值,因此C答案中的a[]的实际...

c语言小题目。急急急
{int a[10],i,j,k,t;for(i=0;i<10;i++) scanf("%d",&a[i]);for(i=0;i<9;i++){k=i;for(j=i+1;j<10;j++)if(a[j]<a[k]) k=j;if(k!=i){t=a[k];a[k]=a[i]; a[i]=t;} } for(i=0;i<10; i++)printf("%5d",a[i]);} 2. 计算正负数据...

C语言作业,急急急求解答
题分析:这个问题可能是由于软件代码中存在大量的冗余、重复计算或者低效算法等因素导致的。另外,如果软件需要加载大量的数据或者进行网络连接,则也会影响其启动速度。解决方案:为了解决这个问题,我们可以从以下几个方面入手:1.优化程序代码:检查程序中是否存在冗余、重复计算或者低效算法等因素,对代码进行...

c语言题目急急急
首先,我们使用外层循环控制每一行的输出。在每一次迭代中,我们首先输出空格,然后输出当前行中的数字。我们使用变量 i 来控制每一行的输出。对于每一行,我们使用内层循环来控制每一个数字的输出。在内层循环中,我们从 i 到 1 依次输出每一个数字。在每一行输出完成后,我们使用 printf("\\n") 输出...

一道c语言题,求解答,急!
x+=x-=x*x;等同于 x+=(x-=x*x);等同于 x+=(x-=36);等同于 x+=(x=x-36);等同于 x+=(x=-30);等同于 x+=(-30);等同于 x=x-30;x=-30-30=-60;答案是B。

C语言题目,求大神解答
typedef struct { long id; \/\/学号 char name[10]; \/\/姓名 char sex[2]; \/\/性别 }PS;\/\/删除函数 int delete(PS *p1, int m, PS *p2, int n){ int i, j;\/\/遍历p1数组 for (i = 0; i < m; i++){ \/\/遍历p2数组 for (j = 0; j < n; j++){ \/\/如果p1...

急求C语言答案,题目:有三个数a,b,c,要求按大小顺序把它们输出(用传统流 ...
一、实现思路,用伪代码写出解此题的算法:1、if a>b 将a和b对换 (a是a,b中的小者)。2、if a>c 将a和c对换 (a是a,c中的小者,因此a是三者中最小者)。3、if b>c 将b和c对换 (b是b,c中的小者,也是三者中次小者)。二、实现代码如下:三、执行结果如下:3者比较就是两两...

相似回答