|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #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;
- }
复制代码
想问一下大佬们,这样写对不对啊!!!
本帖最后由 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>
复制代码
|
|