首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

初学者,大家帮帮忙啊

2012-03-08 
菜鸟求助,大家帮帮忙啊!我想用这个程序实现:先输入10个数,然后选择排序,然后按原来的规律插入一个数。但是

菜鸟求助,大家帮帮忙啊!
我想用这个程序实现:先输入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),这样就能清空缓冲区了

热点排行