c语言 将一个数插入一个数组

已有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中

#include<stdio.h>
int main()
{
int a[11]={1,3,5,15,36,37,58,79,80,95},i,t1,t2;
printf("Previous is:\n");
for(i=0;i<=9;i++)
printf("%5d",a[i]);
printf("\nPlease input a number:");
scanf("%d",&t1);
printf("\nNow is:\n");
for(i=0;i<=9;i++)
{
if(a[i]>t1)
{
for(;i<=10;i++)
{
t2=a[i];
a[i]=t1;
t1=t2;
}
}
break;
}
for(i=0;i<=10;i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}

不知道哪里有错
我默认原来数组11个,最后一个是a[10]=0

第1个回答  2011-12-10
if(a[i]>t1)
{
for(;i<=10;i++)
{
t2=a[i];
a[i]=t1;
t1=t2;
}
break; //这个放在判断里面
}追问

哦这样就对了,再问一下"break;"跟赋值语句,运算语句一样,也是一个独立的语句吧?

追答

是的,它也是一条独立语句。

本回答被提问者采纳
第2个回答  2011-12-10
if(a[i]>t1)
{
for(;i<=10;i++)
{
t2=a[i];
a[i]=t1;
t1=t2;
}
break; //位置错了,应该放到这里
}
第3个回答  2011-12-10
for(i=0;i<=9;i++)
{
int j=i;
if(a[i]>t1)
{
for(;i<=10;i++)
{
t2=a[i];
a[i]=t1;
t1=t2;
}
i=j; //变回来
}
break;
第4个回答  2011-12-10
for(i=0;i<=9;i++)
{
if(a[i]>t1)
{
break;
}
}
for (int j=9; j>=i; --j)
{
a[j+1] = a[j];
}
a[i] = t1;