C语言 数组内数字比较大小

int t,i,a[N];
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N-1;i++)
{if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
for(i=0;i<10;i++)
printf("%d,",a[i]);
这段程序那里出错了。。。求不出来啊

1、首先打开CodeBlocks。

2、创建一个新项目。项目语言,选择“c”。

3、我们将项目名称命名为“MaxNum”,然后下一步,“finish”。

4、打开 “main.c”文件。

5、用数组将10个数存入其中即可。开始,创建一个整型(int)有10个空间的数组nums。然后,定义一个循环变量i。

6、在for循环中,用来接收用户输入的数字,将其存到数组中。其中for循环10次。

7、完成以上代码,就是完成了接收10个数的功能完成了。

8、我们用for循环十次。同时每次循环,判断max与相应的的数进行比较。如果max小于那个数,那么就将那个数赋值给max。以此类推,循环10次就是 max和所有数都进行了比较和优选。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-29

#include<stdio.h>

voidmain()

{

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

inti,j,t;

for(j=0;j<10;j++)

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

if(a[i]>a[i+1])/*由小到大,由大到小时改为<*/

{

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

}

for(i=0;i<10;i++)

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

}

扩展资料

C语言数组长度获取

#include<stdio.h>

#include<stdlib.h>

#defineGET_ARRAY_LEN(array,len){len=(sizeof(array)/sizeof(array[0]));}

//定义一个带参数的宏,将数组长度存储在变量len中

intmain()

{

chara[]={'1','2','3','4'};

intlen;

GET_ARRAY_LEN(a,len)

//调用预定义的宏,取得数组a的长度,并将其存储在变量len中

printf("%d\n",len);

system("pause");

return0;

}

本回答被网友采纳
第2个回答  2012-09-26

#include<stdio.h>

int main()

{

    int a[100]={0};

    int tmp=0;

    int i,j;

    int num;

    printf("please input your num:");

    scanf("%d",&num);

    for(i=0;i<num;i++)

        scanf("%d",&a[i]);

    for(j=0;j<num;j++){        //此处是关键:要依次比较一趟

        for(i=0;i<num-j;i++){        //每一个循环都要依次比较一趟

            if(a[i]<a[i+1]){

                tmp=a[i];

                a[i]=a[i+1];

                a[i+1]=tmp;

            }

        }

    }

    for(i=0;i<num;i++)

        printf("%d\n",a[i]);

    return 0;

}

第3个回答  推荐于2017-11-25
冒泡法的程序是这样的:
#include <stdio.h>
#define N 6
main()
{
int a[10];
int i,j,t;
printf("input N numbers:\n");
for(i=0;i<N;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=0;j<N-1;j++)/*进行N-1次循环,实现N-1次比较,设置N=6,则需要进行5次比较,即一个数只要跟其他5个数比较*/
for(i=0;i<N-1-j;i++)/*在每一趟中进行N-1-j次比较*/
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
for(i=0;i<N;i++)
printf("%d ",a[i]);
}
j=0时,经过i=0,1,2,3,4的循环比较,最大的数已经放到了a[5]里面;
j=1时,因为最大的数已经在a[5]里面了,剩下的5个数只需进行N-1-j=4次的比较,把第二大的数放到a[4]里面;
j=2时,最大的数和第二大的数分别在a[5]、a[4]里面了,剩下的4个数所以只需进行N-1-j=3次比较,把第三大的数放到a[3]里面;
j=3时,第一、第二、第三大的数分别在a[5]、a[4]、a[3]里面,剩下的3个数所以只需进行N-1-j=2次比较,把第四大的数放到a[2]里面;
j=4时,第一、第二、第三、第四大的数分别在a[5]、a[4]、a[3]、a[2]里面,剩下的两个数只需进行N-1-j=1次比较就可以把第五大的数放到a[1]里面,然后a[0]存最小的数。本回答被提问者采纳
第4个回答  2012-09-26
void bubble_sort(int *x,int n)

  {

  int j,k,h,t;

  for (h=n-1,h=k; h>0; h--) /*循环到没有比较范围*/

  {

  for (j=0,k=0; j<h; j++) /*每次预置k=0,循环扫描后更新k*/

  {

  if (*(x+j) > *(x+j+1)) /*大的放在后面,小的放到前面*/

  {

  t = *(x+j);

  *(x+j) = *(x+j+1);

  *(x+j+1) = t; /*完成交换*/

  k = j; /*保存最后下沉的位置。这样k后面的都是排序排好了的。*/

  }

  }

  }

  }
int main()
{

int t,i,a[N];
for(i=0;i<N;i++)
scanf("%d",&a[i]);
bubble_sort(a, 10);
for(i=0;i<10;i++)
printf("%d,",a[i]);

}
相似回答