有n个数,已按从小到大顺序排列好.要求输入一个数,插入原数列中,仍然保持有序以下是我写的代码:#include<stdio.h>int main(){ int i,j,k,t,a[11],sum; printf("Please input 10 numbers\n"); for(i
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/14 05:47:16
有n个数,已按从小到大顺序排列好.要求输入一个数,插入原数列中,仍然保持有序以下是我写的代码:#include<stdio.h>int main(){ int i,j,k,t,a[11],sum; printf("Please input 10 numbers\n"); for(i
有n个数,已按从小到大顺序排列好.要求输入一个数,插入原数列中,仍然保持有序
以下是我写的代码:
#include<stdio.h>
int main()
{
int i,j,k,t,a[11],sum;
printf("Please input 10 numbers\n");
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[0])
{
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<a[10])
{
for(j=0;j<10;j++)
{
if(sum<a[j])
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;
}
有n个数,已按从小到大顺序排列好.要求输入一个数,插入原数列中,仍然保持有序以下是我写的代码:#include<stdio.h>int main(){ int i,j,k,t,a[11],sum; printf("Please input 10 numbers\n"); for(i
#include<stdio.h>
int main()
{
int i,j,k,t,a[11],sum;
printf("Please input 10 numbers\n");
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[0])
{
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(sum<a[j])//改成k=j;和break;都在if(){}块里
\x09\x09\x09{
\x09\x09\x09\x09k=j;
\x09\x09\x09\x09break;
\x09\x09\x09}
}
\x09\x09a[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++)
\x09\x09\x09printf("%d ",a[i]);
}
return 0;
}