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

一个C程序,想不明白.请.

2012-02-25 
一个C程序,想不明白.请高手指点....此算法的功能是:有一个已经排好序的数组。现输入一个数,要求按原来的规

一个C程序,想不明白.请高手指点....
此算法的功能是:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。当输入5时,结果不正确.可我总想不出的程序错在哪里....
#include<stdio.h>
main()
{
  int a[9]={1,2,3,4,6,7,8,9};
  int i,j,number,end,temp1,temp2;
  printf(" number=");
  scanf("%d",&number);
  end=a[7];
  if(number>end)
  a[8]=number;
  else
  {
  for(i=0;i<8;i++)
  {
  if(a[i]>number)
  {
  temp1=a[i];
  a[i]=number;
  for(j=i+1;j<9;j++)
  {
  temp2=a[j];
  a[j]=temp1;
  temp1=temp2;
  }
   
  }
  }
  }
  for(i=0;i<9;i++)
  printf("%5d",a[i]);
  
}

[解决办法]
#include <stdio.h >
main()
{
int a[9]={1,2,3,4,6,7,8,9};
int i,j,number,end,temp1,temp2;
printf(" number=");
scanf("%d",&number);
end=a[7];
if(number >end)
a[8]=number;
else
{
for(i=0;i <8;i++)
{
if(a[i] >number)
{
temp1=a[i];
a[i]=number;
for(j=i+1;j <9;j++)
{
temp2=a[j];
a[j]=temp1;
temp1=temp2;
}
break;//这里我们已经得到了结果,不需要再需要i的循环了
}
}
}
for(i=0;i <9;i++)
printf("%5d",a[i]);
  
}

热点排行