主题:[讨论]大家帮我看看这是什么问题
#include<stdio.h>
#define N 6
void main()
{
int a[N],i,j,x,t;
printf("请输入一个数组:\n");
for(i=0;i<=N-1;i++)
scanf("%d",&a[i]);
printf("\n");
printf("按从小到大的顺序排列:\n");
for(i=0;i<=N-2;i++)
{
for(j=i+1;j<=N-1;j++)
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
printf("%d ",a[i]);
}
printf("%d\n",t);
a[N]=t;
printf("\n请输入要插入的数字:\n");
scanf("%d",&x);
printf("\n重新排列结果:\n");
if(x<a[0])
{
printf("%d ",x);
for(j=0;j<=N-1;j++)
printf("%d ",a[j]);
}
if(x>a[N])
{
for(j=0;j<=N-1;j++)
printf("%d ",a[j]);
printf("%d ",x);
}
for(i=0;i<=N-2;i++)
if(x>=a[i]&&x<=a[i+1])
{
for(j=0;j<=i;j++)
printf("%d ",a[j]);
printf("%d ",x);
for(j=i+1;j<=N-1;j++)
printf("%d ",a[j]);
}
}
在第二次输入后,虽然结果正确,但会弹出“停止工作”。
具体见附件。
环境是windows7、vc++
#define N 6
void main()
{
int a[N],i,j,x,t;
printf("请输入一个数组:\n");
for(i=0;i<=N-1;i++)
scanf("%d",&a[i]);
printf("\n");
printf("按从小到大的顺序排列:\n");
for(i=0;i<=N-2;i++)
{
for(j=i+1;j<=N-1;j++)
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
printf("%d ",a[i]);
}
printf("%d\n",t);
a[N]=t;
printf("\n请输入要插入的数字:\n");
scanf("%d",&x);
printf("\n重新排列结果:\n");
if(x<a[0])
{
printf("%d ",x);
for(j=0;j<=N-1;j++)
printf("%d ",a[j]);
}
if(x>a[N])
{
for(j=0;j<=N-1;j++)
printf("%d ",a[j]);
printf("%d ",x);
}
for(i=0;i<=N-2;i++)
if(x>=a[i]&&x<=a[i+1])
{
for(j=0;j<=i;j++)
printf("%d ",a[j]);
printf("%d ",x);
for(j=i+1;j<=N-1;j++)
printf("%d ",a[j]);
}
}
在第二次输入后,虽然结果正确,但会弹出“停止工作”。
具体见附件。
环境是windows7、vc++