有n个数,已按从小到大顺序排列好.要求输入一个数,插入原数列中,仍然保持有序

有n个数,已按从小到大顺序排列好.要求输入一个数,插入原数列中,仍然保持有序
以下是我写的代码:

#include
int main()
{
int i,j,k,t,a[11],sum;
printf("Please input 10 numbersn");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
printf("n");
printf("Please input a number:n");
scanf("%d",&sum);
if(sum>a[9])
{
a[10]=sum;
for(i=0;i<11;i++)
{
printf("%d ",a[i]);
}
}
else if(sum {
a[10]=sum;
for(i=0;i<11;i++)
{
t=a[0];
a[0]=a[10];
a[10]=t;
}
for(i=0;i<11;i++)
{
printf("%d ",a[i]);
}
}
else if(sum>a[0]&&sum {
for(j=0;j<10;j++)
{
if(sum k=j;
break;
}
for(i=k;i<11;i++)
{
t=a[i];
a[i]=a[10];
a[10]=t;
}
for(i=0;i<11;i++)
printf("%d ",a[i]);
}
return 0;
}
yizhenfeng123 1年前 已收到1个回答 举报

shiliqiongss 幼苗

共回答了18个问题采纳率:77.8% 举报

#include
int main()
{
int i,j,k,t,a[11],sum;
printf("Please input 10 numbersn");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
printf("Please input a number:n");
scanf("%d",&sum);
if(sum>a[9])
{
a[10]=sum;
for(i=0;i<11;i++)
{
printf("%d ",a[i]);
}
}
else if(sum{
a[10]=sum;
for(i=0;i<11;i++)
{
t=a[i];//这里是a[i]
a[i]=a[10];//这里是a[i]
a[10]=t;
}
for(i=0;i<11;i++)
{
printf("%d ",a[i]);
}
}
else if(sum>=a[0]&&sum<=a[9])//这里改成sum>=a[0]&&sum<=a[9]
{
for(j=0;j<10;j++)
{
if(sumx09x09x09{
x09x09x09x09k=j;
x09x09x09x09break;
x09x09x09}
}
x09x09a[10]=sum;//加上a[10]=sum,否则a[10]没有初始化
for(i=k;i<11;i++)
{
t=a[i];
a[i]=a[10];
a[10]=t;
}
for(i=0;i<11;i++)
x09x09x09printf("%d",a[i]);
}
return 0;
}

1年前

3
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.028 s. - webmaster@yulucn.com