您的位置:首页 > 其它

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

2017-08-15 09:03 766 查看

C程序设计 (第四版) 谭浩强 习题6.4 个人设计

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

代码块

方法1:

#include <stdio.h>
int main()
{
int n[8]={12, 33, 55, 67, 78, 89, 94};    //定义一个数组
int i, j, num;
printf("Please enter number: ");          //输入一个数
scanf("%d", &num);
for (i=0; i<8; i++){
if (num<n[i]){                        //判断数字与数组内数字对比,然后重新排序号
for (j=7; j>i; n[j--]=n[j-1]);
n[j]=num;
break;
}
else if (num>=n[6]) n[7]=num;         //判断数字处于末尾时的特殊情况
}
for (i=0; i<8; printf("%d ", n[i++]));    //输出排序后的数组
printf("\n");
return 0;
}


方法2:

#include <stdio.h>
int main()
{
int n[7]={12, 33, 55, 67, 78, 89, 94};
int i, j, k, num, r[8];
printf("Please enter number: ");                //输入一个数
scanf("%d", &num);
for (i=0, j=0; i<7; i++){                       //判断数字位置
if (num>n[i]){
r[j++]=n[i];
r[j]=num;
}
else{
for (j=i+1, k=i; j<8; r[j++]=n[i++]);
r[k]=num;
}
}
for (i=0; i<8; printf("%d ", r[i++]));          //输出排序后数组
printf("\n");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐