c语言编程从输入的n个数中,去掉一个最大数和一个最小数,求剩余数的平均值。

要求简单易懂。

#include <stdio.h>

#include <malloc.h>

void main ()

{

int *p;

int NUM,i,temp,j,all;

float k;

    printf("how many numbers\n");

    scanf("%d",&NUM);

p = malloc(NUM * sizeof(int));

    printf("input the numbers\n");

    for(i=0;i<NUM;i++)scanf("%d",p+i);

for(i=0;i<NUM-1;i++)

{

for(j=0;j<NUM-1-i;j++)

{

if(*(p+j)>*(p+j+1))

{

//互换

temp = *(p+j);

*(p+j)=*(p+j+1);

*(p+j+1)= temp;

}

}

}

    all=0;

for(i=1;i<NUM-1;i++)

{

temp=*(p+i);

all = all + temp;

}

k=(float)(all/(NUM-2));

printf("%d\n",all);

printf("%f\n",k);

}

vc6.0下调试通过

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-21
学海无涯苦作舟,乘风破浪未有时。学无止境,逆流而上
第2个回答  2012-11-21
#include "stdio.h"
int main()
{
int n, x;

double sum = 0;

int max = 0;

double avg;

int min = 1<<31;

scanf("%d", &n);

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

{
scanf("%d", &x);

sum += x;

max = max >= x ? max : x;

min = min <= x ? min : x;

}

sum = sum - max - min;

avg = sum / n;

print ("avg = %lf, max = %d, min = %d\n", avg, max, min);

return 0;

}追问

不能运行这个程序,有错误

追答

#include "stdio.h"
int main()
{
int n, x;
double sum = 0;
int max = 0;
double avg;
int min = 1= x ? max : x;//max 保存这N个数里面的最大值
min = min <= x ? min : x;//min保存这N个数里面的最小值
}
sum = sum - max - min;//去掉最大值和最小值
avg = sum / n;//求平均
printf ("avg = %lf, max = %d, min = %d\n", avg, max, min);//输出
return 0;
}

已经编译测试过可运行。

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