程序改進如下,改動的行已註釋:
#include<stdio.h>
int main()
{
int a[100];
int n,m,i,j,t1,t2;
do//使用do while循環
{
scanf("%3d",&n);
scanf("%3d",&m);
for(i=0;i<n;i++)
scanf("%3d",&a[i]);
for(i=0;i<n;i++)
{
if(a[i]>m)
{
t1=a[i];
a[i]=m;
for(j=i+1;j<n+1;j++)
{
t2=a[j];
a[j]=t1;
t1=t2;
}
}
}
for(i=0;i<=n;i++)
if(n!=0||m!=0) printf("%3d",a[i]);//此處加壹個if語句,m、n非零才有輸出
printf("\n");
}while(n!=0||m!=0);//判斷,如n和m同時為0,標示輸入數據的結束,此行不作處理
return 0;
}
望采納~如您還有不解,歡迎追問~