.从键盘上输入N个整数保存在数组中,用选择法排序将其按降序排列。

有没有人在啊,想请教下,.从键盘上输入N个整数保存在数组中,用选择法排序将其按降序排列。
最新回答
空有一颗爱她的`心

2024-06-04 03:03:56

测试结果:
6
12
45
65
32
75
95

原始————选择————:排序前
12 45 65 32 75 95
第1轮排序结果:
95 45 65 32 75 12
第2轮排序结果:
95 75 65 32 45 12
第3轮排序结果:
95 75 65 32 45 12
第4轮排序结果:
95 75 65 45 32 12
第5轮排序结果:
95 75 65 45 32 12

代码
#include "stdio.h"
#include "conio.h"

void printArray(int a[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%2d ",a[i]);
}
}

void swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}

void selectSort(int a[],int n)
{
int i,j,k;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(a[k]<a[j])
{
k=j;
}
}
if(k!=i)
{
swap(&a[i],&a[k]);
}
printf("\n第%i轮排序结果:\n",i+1);
printArray(a,n);
}
}

main()
{
int a[50];
int i,n=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
printf("\n\n原始————选择————:排序前\n");
printArray(a,n);
selectSort(a,n);

getch();
}
离山道寺

2024-06-04 09:35:10

#include<stdio.h>
#include<stdlib.h>

int main()
{
int n,num[1000];
int i,j,t;

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

for (i=0;i<n-1;i++)
for (j=i+1;j<n;j++)
if (num[i]<num[j])
{
t=num[i];
num[i]=num[j];
num[j]=t;
}

for (i=0;i<n;i++)
printf("%d ",num[i]);
printf("\n");
system("pause");
return 0;
}

以上是程序,c语言的……其中n是你说的N,num是数组。system("pause"); 不想加也可以……那是为了防止你看不到结果就结束了的……
ぇ气

2024-06-04 04:20:44

#include<iostream>
using namespace std; int main()
{
int N;
cout<<"请输入你想要排序的数的个数:"<<endl;
cin>>N;
int arr[N];
cout<<"输入你想要排序的元素:"<<endl;
for(int i=0; i<N; i++)
{
cin>>arr[i];
}
for(int i=0; i<N-1; i++)
{
for(int j=i+1; j<N; j++)
{
if(arr[i]<arr[j])
{
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
cout<<"排序后的数为:"<<endl;
for(int i=0; i<N; i++) cout<<arr[i]<<'\t';
cout<<endl;
return 0;
}