赞
踩
问:有 n 个整数已按由小到大的顺序排列好,要求输入一个整数,把它插入到原有数列中, 而且仍然保持有序,同时输出新的数列。
(插入时应考虑到插入的数的各种可能性,比所有 的数都小;比所有的数都大;在最大数和最小数之间)
答:
#include <iostream> #include <stdio.h> using namespace std; template <class T> int getArrayLen(T& array) { return (sizeof(array) / sizeof(array[0])); } int main() { while (true) { int i, j, k, t, b; int a[] = { 2, 4 }; int len = getArrayLen(a); // 输入一个整数(&b) printf("Please input a number:\n"); scanf_s("%d", &b); if (b > a[len - 1]) // b > 最大值 { a[len] = b; } else if (b < a[0]) // b < 最小值 { a[len] = b; for (i = 0; i < (len + 1); i++) { t = a[i]; a[i] = a[len]; a[len] = t; } } else if (b >= a[0] && b <= a[len - 1])//b >= 最小值 && b <= 最大值 { for (j = 0; j < len; j++) { if (b <= a[j]) { k = j; break; } } a[len] = b; for (i = k; i < (len + 1); i++) { t = a[i]; a[i] = a[len]; a[len] = t; } } // 打印 for (i = 0; i < len + 1; i++) { printf("%d ", a[i]); } } return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。