12464994 2021-10-21 00:35 采纳率: 61.5%
浏览 29
已结题

为什么加上多组输入while循环,输出结果就是错误的,如果不要求多组输入,把while删掉,输出结果就可以正确,想知道哪里错了



#include<stdio.h>
int main()
{
    int i,j,arr[100],n,d;
    while(scanf("%d",&n)!=EOF);
    {
        for(i=0;i<n;i++)
        {
            scanf("%d",&arr[i]);
        }
        for(i=1;i<n;i++)
        {
            for(j=0;j<n-i;j++)
            {
                if(arr[j+1]<arr[j])
                   {
                       int temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                   }
            }
        }
        for(i=0;i<n;i++)
        {
        printf("%d ",arr[i]);
        }
    }
}

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/85409774743616.jpg "=600 #left")


```

  • 写回答

2条回答 默认 最新

  • qzjhjxj 2021-10-21 10:36
    关注

    修改如下,问题见注释,供参考:

    #include<stdio.h>
    #include <cstdio>
    int main()
    {
        int i, j, arr[100], n, d;
        //while (scanf("%d", &n) != EOF)//  ;  修改,这里多了‘;' 
        while (scanf("%d", &n) == 1 && n != -1) //修改,以 -1 结束输入。
        {
            for (i = 0; i < n; i++)
            {
                scanf("%d", &arr[i]);
            }
            for (i = 0; i < n - 1; i++)      //for (i = 1; i < n; i++)
            {
                for (j = 0; j < n - i - 1; j++)//for (j = 0; j < n - i; j++)
                {
                    if (arr[j + 1] < arr[j])
                    {
                        int temp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = temp;
                    }
                }
            }
            for (i = 0; i < n; i++)
            {
                printf("%d ", arr[i]);
            }
            printf("\n");
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月29日
  • 已采纳回答 10月21日
  • 修改了问题 10月21日
  • 创建了问题 10月21日

悬赏问题

  • ¥66 换电脑后应用程序报错
  • ¥50 array数据同步问题
  • ¥15 pic16F877a单片机的外部触发中断程序仿真失效
  • ¥15 Matlab插值拟合差分微分规划图论
  • ¥15 keil5 target not created
  • ¥15 C/C++数据与算法请教
  • ¥15 怎么找志同道合的伙伴
  • ¥20 如何让程序ab.eXe自已删除干净硬盘里的本文件自己的ab.eXe文件
  • ¥50 爬虫预算充足,跪巨佬
  • ¥15 滑块验证码拖动问题悬赏