C语言数组添加一个元素并排序

C语言数组添加一个元素并排序,第1张

我用vc6.0调试

已经运行通过.

#include <iostream.h>

void main()

{

int a[20]

int tmp

int i,j

for(i=0i<10i++)

{

cout<<"输入第"<<i+1<<"个数:"

cin>>a[i]

}

for(i=0i<9i++)

{

tmp=a[i]

for(j=ij<10j++)

if(tmp>a[j])

{

tmp=a[j]

a[j]=a[i]

a[i]=tmp

}

}

for(i=0i<10i++)

cout<<a[i]<<""

cout<<endl

cout<<"再输入一个数:"

cin>>tmp

for(i=0i<11i++)

{

if(tmp<a[i])

{

for(j=10j>ij--)

a[j]=a[j-1]

a[j]=tmp

break

}

}

for(i=0i<11i++)

cout<<a[i]<<""

cout<<endl

}

楼主根据实际适当改下应该能符合要求:

#include<iostream>

int main()

{

int i,j,a,b,list[12] = {1,2,8,15,99,111,200,201,800,1010,1500}

\\注意定义数组大小\\

printf("请输入你想插入数组的数字:")

scanf("%d",&a)

for (i=0i<11++i)

{ if(a <list[i] ) \\判断插入的条件

{

for(j=10j>=i--j) \\插入地址的元素依次向后移动一位,

list[j+1]=list[j]

break

}

}

list[i]=a \\插入元素

printf("输出插入后数组:")

for(i=0i<12++i)

{

printf("%d ",list[i])

}

printf("\n")

printf("请输入你想删除数组的数字:")

scanf("%d",&b)

for(i=0i<12++i)

{

if(b==list[i])\\判断删除元素的条件

{

for(j=ij<12++j)

list[j]=list[j+1]

\\该删除地址后的的元素依次向前移一位,被删除元素自然被后一位代替

break

}

}

printf("输出删除后数组:")

for(i=0i<11++i)

{

printf("%d ",list[i])

}

printf("\n")

return 0

}

#include<iostream>

using namespace std

void main() {

int n

cin >>n

int* a=new int[n]

int* order=new int[n]

for(int i=0i<ni++) {

cin >>a[i] order[i]=0

}

int eqNum=0

for(int ord=1ord+eqNum<=nord++) {

int first=0

while(order[first]!=0) first++

// cout <<"ord: " <<ord <<", first: " <<first

int min=a[first], minAt=first

for(int j=first+1j<nj++) {

if(order[j]!=0) continue

if(a[j]<min) { min=a[j] minAt=j}

}

// cout <<", minAt: " <<minAt <<", min: " <<min <<endl

int ord0=ord

order[minAt]=ord0

for(int k=minAt+1k<nk++) {

if(a[k]==min) { order[k]=ord0 eqNum++ }

}

}

for(int i=0i<ni++) {

if(i>0) cout <<" "

cout <<order[i]

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11562659.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存