首页 > 试题广场 >

选择法排序。输入一个正整数n (1n≤10),再输入n个整

[问答题]

选择法排序。输入一个正整数n (1<n≤10),再输入n个整数,将它们从大到小排序后输出。试编写相应程序。

推荐
#include <stdio.h>
int main(void)
{
   int i, index, k, n, temp;
   int a[10];
   printf("Input n: ");
   scanf("%d", &n);
   printf("Input %d integers: ");
   for(i=0; i<n; i++)
       scanf("%d", &a[i]);
   for(k=0; k<n-1; k++){
       index=k;
       for(i=k+1; i<n; i++)
           if(a[i]> a[index]) index=i;
       temp=a[index];
       a[index]=a[k];
       a[k]=temp;

发表于 2018-05-06 21:35:22 回复(1)
#define _CRT_SECURE_NO_WARNINGS    
//#include <stdlib.h> 
#include <stdio.h>
//#include<malloc.h>
//#include<math.h>
//#include <string.h>
//#include <ctype.h> //字符处理 



int main() {
    int n;
    scanf("%d", &n);
    int* a = malloc(n * sizeof(int)); // 动态分配数组内存  
    for (int i = 0; i < n; i++) {
        scanf("%d", &a[i]);
    }
    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n - i - 1; j++) {
            if (a[j] > a[j + 1]) {
                int temp = a[j + 1];
                a[j + 1] = a[j];
                a[j] = temp;
            }
        }
    }
    for (int i = 0; i < n; i++) {
        printf("%d ", a[i]);
    }
    free(a); // 释放动态分配的内存  
    return 0;
}
发表于 2023-07-18 15:44:29 回复(0)
#include<stdio.h>
int main(){
	int n;
	scanf("%d",&n);
	int a[n];
	for(int i=0;i<n;i++){
		scanf("%d",&a[i]);
	}
	int m;
	for(int i=0;i<n-1;i++){
		for(int j=0;j<n-1-i;j++){
			if(a[j]>a[j+1]){
				m=a[j+1];
				a[j+1]=a[j];
				a[j]=m;
			}
		}
	}
	for(int i=0;i<n;i++){
		printf("%d ",a[i]);
	}
	return 0;
}

发表于 2020-12-30 22:53:34 回复(1)
#include <stdio.h>
int main()
{
 int i,j,n,temp,a[100];
 printf("please input n:\n");
 scanf("%d",&n);
 for(i=0;i<n;i++)
  scanf("%d",&a[i]);
 for(i=0;i<n-1;i++)
 {
  for(j=i+1;j<n-1;j++)
  {
   if(a[i]>=a[j])
   {
    temp=a[i];
    a[i]=a[j];
    a[j]=temp;
   }
  }
 }
 for(i=0;i<n;i++)
  printf("%d ",a[i]);
 return 0;
}
发表于 2020-07-17 21:13:41 回复(0)

#include<stdio.h>
int main(){
	int a[10],i,n,pos,temp;

	printf("Enter n:\n");
	scanf("%d",&n);
	
	for(i=0;i<n;i++){
		scanf("%d",&a[i]);
	}

	for(pos=0;pos<n;pos++){
		for(i=pos+1;i<n;i++){
			if(a[pos]>a[i]){
				temp=a[pos];
				a[pos]=a[i];
				a[i]=temp;
			}
		}
	}

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

	printf("\n");

	return 0;
}


发表于 2019-12-24 16:17:48 回复(1)
#include<stdio.h>
int main ()
{
	int i, j;
	int a [10];
	int n;
	scanf ("%d",&n);
	for (i=0; i<n; i++)
		scanf ("%d",&a[i]);
	for (i=0;i<n-1;i++)
		for(j=i+1;j<n;j++)
			if(a[i]<a[j])
				a [i]^=a [j]^=a [i]^=a [j];	
	for (i=0; i<n;i++)
		printf ("%d ", a [i]);
	printf("\n");
	return 0;							
 } 

发表于 2019-12-15 15:44:49 回复(0)
include<stdio.h> int main(void) { int i,index,k,n,temp; int a[10]; printf("请输入n(1<n><=10)"); scanf("%d",&n); printf("输入%d数",n); for(i=0;i<n>a[index]) index=i; temp=a[index]; a[index]=a[k]; a[k]=temp; } for(i=0;i</n></n></stdio.h>
发表于 2018-09-14 14:47:02 回复(0)