C语言 数组内数字比较大小
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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和所有数都进行了比较和优选。
参考技术A#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;
参考技术B#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;
参考技术C 冒泡法的程序是这样的:#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]存最小的数。本回答被提问者采纳 参考技术D 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]);
以上是关于C语言 数组内数字比较大小的主要内容,如果未能解决你的问题,请参考以下文章