#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]);
}
}
}

```
修改如下,问题见注释,供参考:
#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");
}
}
scanf换成getchar,或者不要加!=EOF,这种你们不会用就不要乱加