C程序设计第六章作业 4
问:
有一组已经排序好的数据 现在要进行数据插入 并且按照原数据方式进行排序
答:
从大到小版本:
#include<stdio.h> //数据插入
int main() {
int i = 0, j = 0, k = 0, l = 0;
int Num[11] = { 19,17,15,13,11,9,7,5,3,1};
int Temp1 = 0, Temp2 = 0, End = 0, NewNumber = 0;
printf("Source data is :\n");
for (i = 0; i < 10; i++) {
printf("%d\t", Num[i]);
}
printf("\n");
printf("Insert data :\n");
scanf("%d", &NewNumber);//获取将要插入的数据
End = Num[9];//标记指向最后一个数字
if (NewNumber < End) {//因为当前排序为从小到大 所以判定如果比最后一个数字大 就将数据插入在最后一个位置
Num[10] = NewNumber;
}
else {//开始寻找相应要插入位置 并且向后搓数据
for (j = 0; j < 10; j++) {
if (Num[j] < NewNumber) {//如果当前位置比要插入数据大
Temp1 = Num[j];//暂存此数据
Num[j] = NewNumber;//将此位置插入数据
for (k = j + 1; k < 11; k++) {//开始向后搓数据 (因为Num[j]位置已确定 所以 k=j+1)
Temp2 = Num[k];//缓存当前数据
Num[k] = Temp1;//读取上一次缓存的“Num[j]”数据 赋值给当前位置 ,并且第二次及运行时读取k的上一个数据
Temp1 = Temp2;//重新赋值给Temp1 获得k-1 的数据
}
break;//执行完搓数据操作直接退出循环
}
}
}
printf("New data is :\n");
for (i = 0; i < 11; i++) {
printf("%d\t", Num[i]);
}
return 0;
}
运行截图:
C%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E7%AC%AC%E5%85%AD%E7%AB%A0%E4%BD%9C%E4%B8%9A%204.assets/4765cd1d-b3f7-4d15-ad48-6cd1c20d37fd.png从小到大版本:
#include<stdio.h> //数据插入 从小到大版本
int main() {
int i = 0, j = 0, k = 0, l = 0;
int Num[11] = { 1,3,5,7,9,11,13,15,17,19 };
int Temp1 = 0, Temp2 = 0, End = 0, NewNumber = 0;
printf("Source data is :\n");
for (i = 0; i < 10; i++) {
printf("%d\t", Num[i]);
}
printf("\n");
printf("Insert data :\n");
scanf("%d", &NewNumber);//获取将要插入的数据
End = Num[9];//标记指向最后一个数字
if (NewNumber > End) {//因为当前排序为从小到大 所以判定如果比最后一个数字大 就将数据插入在最后一个位置
Num[10] = NewNumber;
}
else {//开始寻找相应要插入位置 并且向后搓数据
for (j = 0; j < 10; j++) {
if (Num[j] > NewNumber) {//如果当前位置比要插入数据大
Temp1 = Num[j];//暂存此数据
Num[j] = NewNumber;//将此位置插入数据
for (k = j + 1; k < 11; k++) {//开始向后搓数据 (因为Num[j]位置已确定 所以 k=j+1)
Temp2 = Num[k];//缓存当前数据
Num[k] = Temp1;//读取上一次缓存的“Num[j]”数据 赋值给当前位置 ,并且第二次及运行时读取k的上一个数据
Temp1 = Temp2;//重新赋值给Temp1 获得k-1 的数据
}
break;//执行完搓数据操作直接退出循环
}
}
}
printf("New data is :\n");
for (i = 0; i < 11; i++) {
printf("%d\t", Num[i]);
}
return 0;
}
运行截图:
C%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E7%AC%AC%E5%85%AD%E7%AB%A0%E4%BD%9C%E4%B8%9A%204.assets/5fdfce6e-f8e1-4728-8c9a-8ae83ac67b5d.png