#include
int main(){
int numbers[10] = { 10,2,3,4,5,6,9,8,7,1 }
int a,b, text, hello
for(a=0a<10-1a=a+1) { //在这里进行比较的开始的代码
hello = 1 //假如剩下的元素已经被排序好了,然后接着进行下面的比较
for(b=0b<10-1-ib=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=0a<10a=a+1){
printf("%d ", numbers[a])
}
printf("\n")
return 0
}
扩展资料:
C语言中数组元素大小的相关排序规则:
一、首先需要对数组中的元素进行排列,默认是以字符串的规则进行从小到大排序;可接收一个参数:自定义的规则相关排序。参数的具体要求如下:
1、参数首先必须是一个函数;
2、函数必须有一个明确的返回值;
3、返回值必须是number类型,但不可以是NaN。
二、排序中的具体规则:
1、首先每次从数组中挑选出两个元素传入函数中,进行比较,直到所有进行排列的元素都被挑选完毕以后就不要再进行挑选;
2、如果返回值是枯凳一个正数,就交换这彼此的位置,实现大小的正确排列;
3、如果返回值是一个负数或0,此时说明大小位置的拿败旁顺序是正确的,此时就不需要交换彼此消橡的位置。
4、默认同一字符的全角字符看做半角字符。不区分同一个字符(如日文的片假字)的半角与全角状态。相同元素,维持原序,默认区分字母大小写,同一个字符小写在前,大写在后。
注意:对数组的元素进行排序需要不断比较两个数字的大小,10个元素排序一共需要比较9次,直到所有的元素被都完完全全地被比较一次。
分类: 电脑/网络 >>程序设计 >>其他编程语言问题描述:
#include<stdio.h>
void main(void)
{int i=0
float a[15]={2.1,4.3,5.2,3.75,6.24,4.4,9.32,3.1,2.92,2.1,3.8,6.7,5.8,9.0,5.54},c=0.00
while(i<=14){
c=max(a[i],c)
++i}
printf("%f",c)
}
float max(float x,float y)
{float z
z=x>y?x:y
return (z)
}
我者掘编了这个程序拦芦,可是结果不对,请看看有什么错误呢?
(就是比较数组中哪个数最大)
解析:
float max(float x,float y)在首衡核main()后面在main()中调用时要先声明
#include<stdio.h>
void main(void)
{int i=0
float a[15]={2.1,4.3,5.2,3.75,6.24,4.4,9.32,3.1,2.92,2.1,3.8,6.7,5.8,9.0,5.54},c=0.00
float max(float x,float y)此处为函数声明
while(i<=14){
c=max(a[i],c)
++i}
printf("%f",c)
}
float max(float x,float y)
{float z
z=x>y?x:y
return (z)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)