求C语言将数组元素大小排序!!

如题所述

第1个回答  2022-12-11

#include <stdio.h>

int main(){

int numbers[10] = { 10,2,3,4,5,6,9,8,7,1 };

int a,b, text, hello;                           

for(a=0; a<10-1; a=a+1) {                 //在这里进行比较的开始的代码

hello = 1;                                        //假如剩下的元素已经被排序好了,然后接着进行下面的比较

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

if(numbers[b] > numbers[b+1]){

text= numbers[b];

numbers[b] = numbers[b+1];

numbers[b+1] = text;

hello= 0;                                          

}

}

if(hello) break;                             

}

for(a=0; a<10; a=a+1){

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

}

printf("\n");

return 0;

}

扩展资料

C语言中数组元素大小的相关排序规则:

一、首先需要对数组中的元素进行排列,默认是以字符串的规则进行从小到大排序;可接收一个参数:自定义的规则相关排序。参数的具体要求如下:

1、参数首先必须是一个函数;

2、函数必须有一个明确的返回值;

3、返回值必须是number类型,但不可以是NaN。

二、排序中的具体规则:

1、首先每次从数组中挑选出两个元素传入函数中,进行比较,直到所有进行排列的元素都被挑选完毕以后就不要再进行挑选;

2、如果返回值是一个正数,就交换这彼此的位置,实现大小的正确排列;

3、如果返回值是一个负数或0,此时说明大小位置的顺序是正确的,此时就不需要交换彼此的位置。

4、默认同一字符的全角字符看做半角字符。不区分同一个字符(如日文的片假字)的半角与全角状态。相同元素,维持原序,默认区分字母大小写,同一个字符小写在前,大写在后。

注意:对数组的元素进行排序需要不断比较两个数字的大小,10个元素排序一共需要比较9次,直到所有的元素被都完完全全地被比较一次。

相似回答