Problem S: 插入一个数到数列中
Description
已有一个排序好的数列:0 10 20 30 40 50 60 70 80,输入一个任意整数m,按序插入到正确位置,输出插入m后的数列。
Input
输入一个整数m
Output
输出插入m后的数列
Sample Input
35
-5
90
Sample Output
0 10 20 30 35 40 50 60 70 80
-5 0 10 20 30 40 50 60 70 80
0 10 20 30 40 50 60 70 80 90
#include<stdio.h>
int main(){
int n,m,c,i,k,j,a[10]={0,10,20,30,40,50,60,70,80,},b[100];
while(scanf("%d",&n)!=EOF){
if(n<80){
for(i=0;i<10;i++){
if(n<a[i]){
m=a[i];
a[i]=n;
break;
}
}
for(j=i;j<10;j++){
k=a[j+1];
a[j+1]=m;
m=k;
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
}
if(n>80){
a[9]=n;
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
}
}
return 0;
}
另一种写法
#include<stdio.h>
int main()
{
int n,a[9]={0,10,20,30,40,50,60,70,80},i,k;
scanf("%d",&n);
a[9]=n;
for(i=0;i<=9;i++)
{
if(a[i]>n)
{
k=a[9];
a[9]=a[i];
a[i]=k;
}
}
for(i=0;i<=9;i++)
printf("%d ",a[i]);
return 0;
}
总结
1、考虑情况要全面,用if分情况讨论。
2、对于一些指定数组的元素个数,灵活运用可以简化过程。