求解c语言冒泡排序
对一个无序数组int a[N]进行降序排列,输出排列后数组,并求出该数组最大值与最小值;在此基础上向该排列后数组插入一个正整数x,要求插入后的数组仍然是有序的。
程序代码:
#include "stdio.h" #include "stdlib.h" void choose(int a[],int n){ int i,j,_tp; for(i=1;i<n;i++) { for(j=n-1;j>=i;j--) { if(a[j]>a[j-1]){ _tp=a[j]; a[j]=a[j-1]; a[j-1]=_tp; } } } } void output(int a[],int n){ int i; for(i=0;i<n;i++) printf("%3d",a[i]); } void main() { int a[1000],n,i,j,num; printf("请输入N:"); scanf("%d",&n); for(i=0;i<n;i++){ scanf("%d",&a[i]); } choose(a,n); output(a,n); printf("\n最大值=%d,最小值=%d\n",a[0],a[n-1]); printf("请输入一个值:"); scanf("%d",&num); for(i=0;i<n;i++) { if (num > a[i]) { for (j = n; j >= i; j--) { a[j] = a[j - 1]; } a[i] = num; break; } } output(a,n+1); }