用C语言来做,要怎么做?

如果我想删掉输入的数再从小到大排序输出,这个又要怎么做?

#include <stdio.h>

#define N 100


void insert(int a[],int n,int x) {

int i,j;

for(i = 0;i < n; ++i) {

if(x <= a[i]) {

for(j = n; j > i; --j)

a[j] = a[j - 1];

a[j] = x;

return;

}

}

a[n] = x;

}


void sort(int a[], int n) {

int i,j,k,t;

for(i = 0; i < n - 1;++i) {

k = i;

for(j = i + 1;j < n; ++j) {

if(a[j] < a[k]) k = j;

}

if(k != i) {

t = a[i];

a[i] = a[k];

a[k] = t;

}

}

}


void show(int a[], int n) {

int cnt = 0;

for(int i = 0;i < n; ++i) {

if(cnt && cnt%10 == 0) printf("\n");

++cnt;

printf("%d ",a[i]);

}

if(cnt%10) printf("\n");

}


int main() {

int i,x,n,a[N];

printf("n  = ");

scanf("%d",&n);

for(i = 0;i < n; ++i) scanf("%d",&a[i]);

sort(a,n);

printf("\n排序后:\n");

show(a,n);

printf("\n输入要插入的数:");

scanf("%d",&x);

insert(a,n,x);

printf("\n插入%d后:\n",x);

show(a,n + 1);

return 0;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-23

代码文本:

#include "stdio.h"

#define N 10

int main(int argc,char *argv[]){  

int a[N+1]={1,5,6,8,10,13,16,17,21,22},i,j,n;

printf("Please enter a number to be inserted...\n");

scanf("%d",&n);

for(i=N;i>0;i--){//插入

if(n>=a[i-1]){

a[i]=n;

break;

}

a[i]=a[i-1];

}

if(i==0)

a[i]=n;

printf("After insert %d :\n",n);

for(i=0;i<=N;printf("%d ",a[i++]));//输出插入后的数组

putchar('\n');

for(i=0;i<=N;i++)//删除刚刚插入的数

if(a[i]==n)

for(j=i++;i<=N;a[j++]=a[i++]);

printf("After delete %d :\n",n);

for(i=0;i<N;printf("%d ",a[i++]));//输出删除后的原数组

putchar('\n');

return 0;

}

本回答被提问者和网友采纳
相似回答