大家都来看看那错了!
#include<stdio.h>#include<conio.h>
int main(void)
{
int a[10],i,j,k,temp;
for(k=0;k<=9;k++) //大家都看看为什么用此FOR结构运行结果就不正确
scanf("%d",&a[k]);
#if 0
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
#endif
for(i=0;i<10;i++)
{
if(a[i]>a[i+1])
{
temp=a[i+1];
for(j=i;a[j]>temp;j--)
{
if(j<0)
break;
a[j+1]=a[j];
}
a[j+1]=temp;
}
}
for(k=0;k<=9;k++)
printf("%3d",a[k]); printf("\n");
return 0;
}
----------------解决方案--------------------------------------------------------
以下是引用梦想中国在2006-3-7 21:44:00的发言:
#include<stdio.h>
#include<conio.h>
int main(void)
{
int a[10],i,j,k,temp;
for(k=0;k<=9;k++) //大家都看看为什么用此FOR结构运行结果就不正确
scanf("%d",&a[k]);
#if 0
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
#endif
for(i=0;i<9;i++)
{
if(a[i]>a[i+1])
{
temp=a[i+1];
for(j=i;a[j]>temp;j--)
{
if(j<0)
break;
a[j+1]=a[j];
}
a[j+1]=temp;
}
}
for(k=0;k<=9;k++)
printf("%3d",a[k]); printf("\n");
return 0;
}
#include<stdio.h>
#include<conio.h>
int main(void)
{
int a[10],i,j,k,temp;
for(k=0;k<=9;k++) //大家都看看为什么用此FOR结构运行结果就不正确
scanf("%d",&a[k]);
#if 0
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
#endif
for(i=0;i<9;i++)
{
if(a[i]>a[i+1])
{
temp=a[i+1];
for(j=i;a[j]>temp;j--)
{
if(j<0)
break;
a[j+1]=a[j];
}
a[j+1]=temp;
}
}
for(k=0;k<=9;k++)
printf("%3d",a[k]); printf("\n");
return 0;
}
----------------解决方案--------------------------------------------------------
你这程序本可以更简化的~~,你写的i=9时 引用越界了
----------------解决方案--------------------------------------------------------