怎样在c语言中比较一个数组中元素的大小?

Python014

怎样在c语言中比较一个数组中元素的大小?,第1张

main() {int a[10],b[10],i,j=0,k=0,e=0 for(i=0i<10i++) scanf("%d",&a[i]) printf("\n") for(i=0i<10i++) scanf("%d",&b[i]) printf("\n") for(i=0i<10i++) {if(a[i]>b[i]) j++ else if(a[i]b %d times\na

#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次,直到所有的元素被都完完全全地被比较一次。

理论上,c语言数组最大的大小没有限制,因为它用的是 虚拟存储。

对于写程序而言,例如要写下标,那么受 unsigned int 最大值的限制,只能用到十六进制 0xffffffff, 十进制4G多一点。

具体程序能获取多大,就很难说,有时编译可以通过,运行时出错。你也可以用 malloc 动态分配请求,看分配是否成功或失败。

对一般程序而言,数组长度通常够用了。

数组大小一旦确定就不能改变。

数组长度必须在编译时确定,可以使用malloc函数在程序运行时动态分配所需“数组”长度。定义数组需要指定数组的长度,然后系统会根据这个长度分配固定的内存大小。

当出现intarray[10];这种情况的时候,是不可以变的,这时候变量的存储空间在栈区。当intn;cin>>n;intarray=newint[n];的时候,数组可以根据n输入的大小去分配内存,这时候数组存在堆区。

扩展资料

长度为0的数组在标准C和C++中是不允许的,如果使用长度为0的数组,编译时会产生错误,提示数组长度不能为0。但在GNUC中,这种用法却是合法的。

它的最典型的用法就是位于数组中的最后一项,这样做主要是为了方便内存缓冲区的管理。如果长度为0的数组换为指针,那么在分配内存时,需采用两步:

1、需为结构体分配一块内存空间;

2、再为结构体中的成员变量分配内存空间。这样两次分配的内存是不连续的,需要分别对其进行管理。当使用长度为0的数组时,则是采用一次分配的原则,一次性将所需的内存全部分配给它。相反,释放时也是一样的。

参考资料来源:百度百科—c语言