已知整型数组a长度为20,其中保存了15个数,并且这些数在数组中有序存放的。现插入一个数b,保存到数组a中,要求插入的数不能改变数组a中原来的顺序。例如数组a中保存数为1,3,5,24,26插入一个数9后,数组为1,3,5,9,24,26。要求使用c语言stdio.h
2条回答 默认 最新
- qzjhjxj 2021-08-16 14:05关注
供参考:
#include<stdio.h> int main() { int a[21] = { 1,3,5,24,26,30,34,42,48,55,60,61,68,70,77}; int i, j, p, len; len = sizeof(a) / sizeof(a[0])-1; printf("原数组为:\n"); for (i = 0; i < len; i++) if (a[i] != 0) printf("%4d", a[i]); printf("\n输入要插入的数:\n"); scanf("%d", &p); for (i = len-1; i >= 0; i--)//比较选择放置的位置 { j = i + 1; if (p > a[i] && a[i] != 0) { a[j] = p; break; } else { a[j] = a[i]; if (i == 0) a[i] = p; } } printf("输出插入之后的序列:\n"); for (i = 0; i <= len; i++) if (a[i] != 0) printf("%4d", a[i]); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报