菜鸟求助,大家帮帮忙啊!
我想用这个程序实现:先输入10个数,然后选择排序,然后按原来的规律插入一个数。但是如果最初输入十个数的话,程序没有问题,一旦超过十个数,就会自动把输入的第十一个数当作要插入的数,哪位好心的能帮我一下,谢谢!
#include<stdio.h>
#define N 10
int main()
{
int i,j=0,k,l;
int a[N],temp,min=0;
printf("输入%d个数:\n",N);
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
////////////////////////////////////
for(i=0;i<N-1;i++)
{
min=a[i];
for(j=i+1;j<N;j++)
{
if(min>a[j])
{
temp=min;
min=a[j];
a[j]=temp;
}
}
a[i]=min;
}
///////////////////////////////////////
printf("从小到大排列后:\n");
for(i=0;i<N;i++)
{
printf("%-4d",a[i]);
}
printf("\n");
//////////////////////////////////////
printf("插入一个数:"); //插入一个数
scanf("%d",&k);
l=k;
for(i=0;i<N;i++)
{
if(k>a[i]&&k<a[i+1])
{
temp=k;
k=a[i+1];
a[i+1]=temp;
}
}
///////////////////////////////////////
printf("插入%d后:\n",l);
for(i=0;i<N+1;i++)
{
printf("%-4d",a[i]);
}
}
[解决办法]
fflush(stdin)
[解决办法]
楼主可以在对数组赋值完后,也就是进行排序前,加一句fflush(stdin),这样就能清空缓冲区了