求助!!题目是输入若干整数,以-1结束,去掉最大值和最小值,求平均值
#include <stdio.h>int main()
{
int i,n=0,avg=0;
int min=0,max=0,sum=0;
printf("输入若干个数,以-1结尾");
scanf("%d",&i);
while(i!=-1)
{
max=i;
min=i;
if(i>max)
max=i;
if(i<min)
min=i;
n++;
sum+=i;
scanf("%d",&i);
}
avg=(sum-min-max)/n;
printf("%d",avg);
return 0;
}
想问一下大佬们,这样写对不对啊!!!{:10_254:} 本帖最后由 jackz007 于 2021-3-20 12:26 编辑
int main()
{
. . . . . .
scanf("%d",&i);
while(i!=-1)
{
max=i; // 不可以放入循环
min=i; // 不可以放入循环
应该这么改
int main()
{
. . . . . .
scanf("%d",&i);
max=i; // 挪到此处
min=i; // 挪到此处
while(i!=-1)
{
下面是我修改的版本
#include <stdio.h>
int main(void)
{
int d , i , avg , min , max , sum ;
printf("输入若干个数,以 -1 结尾 : ") ;
for(avg = sum = i = 0 ;; i ++) {
scanf("%d" , & d) ;
if(d == -1) {
break ;
} else {
if(! i) {
min = max = d ;
} else {
if(d > max) max = d ;
else if(d < min) min = d ;
}
sum += d ;
}
}
if(i > 1) avg = (sum - max - min) / (i - 2) ;
printf("%d\n" , avg) ;
}
编译、运行实况
D:\00.Excise\C>g++ -o x x.c
D:\00.Excise\C>x
输入若干个数,以 -1 结尾 : 1 2 3 4 5 6 7 8 9 10 -1
5
D:\00.Excise\C> jackz007 发表于 2021-3-20 12:15
应该这么改
下面是我修改的版本
谢谢大佬 我那个程序改了之后是不是就对了哟{:10_254:} 十六筒 发表于 2021-3-20 15:48
谢谢大佬 我那个程序改了之后是不是就对了哟
还不能,这一句
avg=(sum-min-max)/n;
得改成这样
avg=(sum-min-max) / (n-2) ;
jackz007 发表于 2021-3-20 15:55
还不能,这一句
得改成这样
哦哦哦 好的 谢谢大佬{:10_297:} c语言学废了 键盘老实人 发表于 2021-3-22 19:13
c语言学废了
哈哈哈 废了废了{:10_256:}
页:
[1]