用C++编写程序
其中将整数x插入到数组中使其依然有序用函数完成。
输入格式:第一个为个数n,后续为n个整数,再输入一个整数x。
输入:10 2 7 911 5 4 3 6 8 20
12
输出:20 12 119 8 7 6 5 4 3 2 展开
C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。最新正式标准C++于2014年8月18日公布。 其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性!
优点
C++设计成静态类型、和C同样高效且可移植的多用途程序设计语言。
C++设计直接的和广泛的支持多种程序设计风格(程序化程序设计、资料抽象化、面向对象程序设计、泛型程序设计)。
C++设计无需复杂的程序设计环境。
C++语言灵活,运算符的数据结构丰富、具有结构化控制语句、程序执行效率高,而且同时具有高级语言与汇编语言的优点,与其它语言相比 ,可以直接访问物理地址
与汇编语言相比又具有良好的可读性和可移植性。
总得来说,C++语言的主要特点表现在两个方面,一是尽量兼容C,二是支持面向对象的方法。它操持了C的简洁、高效的接近汇编语言等特点,对C的类型系统进行了改革的扩充,因此C++比C更安全,C++的编译系统能检查出更多的类型错误。另外,由于C语言的广泛使用,因而极大的促进了C++的普及和推广。C++语言最有意义的方面是支持面向对象的特征。虽然与C的兼容使得C++具有双重特点,但他在概念上完全与C不同,更具面向对象的特征。
缺点
C++由于语言本身复杂。C++的编译系统受到C++的复杂性的影响,非常难于编写,即使能够使用的编译器如果存在问题,可能难于被发现。
由于本身的复杂性,复杂的C++程序的正确性相当难于保证。
1、输入数字的个数n;
2、使用n,new 一个一维整形数组Arr1,长度为n+1;
3、逐个输入n个待排序整数。(方案1,乱序输入,而后用数组冒泡排序摆放。方案2,插入整数的同时排序)
4、再输入整数X,逐个与数组中的数字比较,找到它应该在的位置的下标,即应该放到的位置,如i,此时,再new一个长度为n-(i+1)的数组Arr2,将Arr1的下标为i~n的值依次赋给Arr2。
5、将X放到Arr1的第i个位置
6、依次将Arr2的值赋给Arr1的下标(i+1)~(n+1)的位置
7、循环输出Arr1即可
#include <iostream>
#include "time.h"
#include "stdlib.h"
using namespace std;
void myinsert(int *p,int n,int x){
int i,j;
for(i=n-1;p[i]<x && i>=0;i--);
for(i+=1,j=n;j>i;p[j--]=p[j-1]);
p[j]=x;
}
void main(void){
int a[100],i,j,k,x,n;
srand((unsigned)time(NULL));
while(1){
cout << "Enter data...\n";
cin >> n;
if(n>0 || n<100) break;
cout << "Error! redo: ";
}
for(i=0;i<n;scanf("%d",a+i++));
for(i=0;i<n;i++){
for(k=i,j=k+1;j<n;j++)
if(a[k]<a[j]) k=j;
if(k!=i){
j=a[k];
a[k]=a[i];
a[i]=j;
}
}
cout << "Type x...\nx=";
cin >> x;
myinsert(a,n,x);
for(n++,i=0;i<n;cout << a[i++] << ' ');
cout << endl;
}