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

供稿:hz-xin.com     日期:2025-01-14
c语言中比较一个数组中元素的大小知道

假设整型数组 a,10个元素,
比较代码:
int max = a[0]; // max保存最大元素
int _max = 0; //保存最大元素下标,如果需要记录那个元素最大
for(int i=1; i<10; i++) // 10为数组元素数量
{
if( a[i]>max ) //比较元素大小,记录最大元素及其下标
{
max = a[i];
_max = i;
}
}

最后 a[_max] 就是最大元素,值同时也保存在变量max里。

有时候,数组元素也可以作为函数实参
例子:有两个数组a和b,各有10个元素,将它们对应的逐个的比较(即a[0]与b[0]比,a[1]与b[1]比...)。如果a数组中的元素大于b数组中的相应元素的数目多于b数组中元素大于a数组中元素的数目(例如:a[i]>b[i]6次,b[i]>a[i]3次,其中i为每次不同的值),则认为a数组大于b数组,并分别统计出两个数组相对应元素大于,等于,小于的次数。
#include "stdafx.h"
#include
#include

int _tmain(int argc, _TCHAR* argv[])
{
int large(int x,int y);
int a[10],b[10],i,n=0,m=0,k=0;
printf("输入数组a:");
for (i=0;i<10;i++)
{
scanf_s("%d",&a[i]);
}
printf("
");
printf("输入数组b:");
for(i=0;i<10;i++)
{
scanf_s("%d",&b[i]);
}
for (i=0;i<10;i++)
{
if(large(a[i],b[i])==1)
{
n=n+1;
}
else if(large(a[i],b[i])==0)
{
m=m+1;
}
else
{
k=k+1;
}
}
printf("a[i]>b[i] %d 次
a[i]=b[i] %d 次
a[i]<b[i] %d 次
",n,m,k);
if (n>k)
{
printf("数组a大于数组b
");
}
else if (n<k)
{
printf("数组a小于数组b
");
}
else
{
printf("数组a等于数组b");
}
getchar();
getchar();
return 0;
}

int large(int x,int y)
{
int flag;
if(x>y)
{
flag=1;
}
else if (x<y)
{
flag=-1;
}
else
{
flag=0;
}
return flag;
}

main() {int a[10],b[10],i,j=0,k=0,e=0; for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); for(i=0;i<10;i++) scanf("%d",&b[i]); printf("\n"); for(i=0;i<10;i++) {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=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次,直到所有的元素被都完完全全地被比较一次。

假设整型数组 a,10个元素,
比较代码:
int max = a[0]; // max保存最大元素
int _max = 0; //保存最大元素下标,如果需要记录那个元素最大
for(int i=1; i<10; i++) // 10为数组元素数量
{
if( a[i]>max ) //比较元素大小,记录最大元素及其下标
{
max = a[i];
_max = i;
}
}

最后 a[_max] 就是最大元素,值同时也保存在变量max里。

...一个元素开始,依次将要查找的数x和数组中元素比较。
table[10]={7,6,5,4,3,2,1,8,9,0}; int x,i; printf("请输入一个整数:"); scanf("%d",&x); for(i=0;i<10;i++) if(x==table[i]){ printf("%d在数组中的第%d个位置\\n",x,i+1); break; } if(i==10) printf("NOT FIND\\...

C语言 判断一个数是否是数组中的成员 用C语言编程
思路:依次遍历该数组,把每个数和需要判断的数进行比较如果相等则退出循环输出存在,如果遍历结束都找不到则不是其成员。参考代码:include "stdio.h"#define N 5int main(){int a[N]={1,2,3,4,5},i,t;scanf("%d",&t);for(i=0;i<5;i++)if(a[i]==t){printf("%d是其成员!",...

C语言找出一个数组中出现次数最多的那个元素
include<stdio.h> int main(){ int n,i,j,k,t,m,a[25];while(scanf("%d",&n)!=EOF){ for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n-1;i++){ for(j=i+1;j<n;j++){ if(a[i]>a[j]){ t=a[i];a[i]=a[j];a[j]=t;\/\/先进行排序,按从小到大的...

用c语言编一个程序:求数组中五个元素的平均值、元素做实参、
include <stdio.h> int main(void){ float a[5];\/\/定义一数组存放需要进行运算的元素 float sum = 0;\/\/初始5元素之和为sum float average = 0;\/\/初始5元素平均数为average int i;\/\/取五元素的值 printf("请输入要求的的元素的值:\\n");for(i = 0;i < 5;i ++){ scanf("%f",&...

...急需!输入一个一维整型数组,并找出数组元素中最大值和最小值及其相 ...
include <stdio.h>#define LEN 50 void main(){ int a[LEN]={0},i,j,min=0,iMin=0,max=0,iMax=0;printf("请个输入整型数组元素(输入0表示输入结束):\\n");for (j=0; j<LEN; j++){ scanf("%d", &a[j]);if (a[j] == 0)break;}min=max=a[0];for (i=1; i<j; i...

c语言中将一个数组中,相邻得元素俩俩相加找出最大得组合
1、算法就是一次循环,每次比较两个值的和与初始值的大小,不断更新,最后输出最大值。2、例程:include <stdio.h>double maxSumOfAdjEle(double* A, int n){ int i = 0; double res; if(0 >= n) return 0; if(1 == n) return A[0]; if(2 == n) return A[...

C语言比较两个数组,从末未开始直至其中一个数组结束,比较两个数组有几...
len2 : len1; \/\/循环次数 int count = 0; \/\/记录重复个数 int arrBegin1 = len1 - 1; \/\/数组1的末尾下标 int arrBegin2 = len2 - 1; \/\/数组2的末尾下标 int i = 0; for (i=0; i<loopCnt; i++) { \/\/判断两数组最末尾的值,以后下标递减,直...

c语言求一个一维数组中的素数
{ int flag=1,i,k;if (n<1) return 0;if (n==1) return 1;k = (int) sqrt(n+1);for(i=2;i<=k;i++) if(n%i==0) {flag=0; break;} return flag;} int main() { int a[]={2,3,4,9,11};int i,n;n = sizeof(a)\/sizeof(int); \/\/数组元素个数 for (i...

c语言编写一个函数,找出一维数组中的最大值和最小值,并计算出数组元素的...
我也做了一个,感觉运行还是不错的。请比较吧!include "stdio.h"double fun(double a[],int n,int *max,int *min);\/*函数原型声明:其中a为数组,n为数组元素个数,max指向最大数,min指向最小数,函数返回值为平均值*\/ int main(){ double b[10],aver;int x,y=10,max=0,*ma=&...

C语言编程:找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大...
include <stdio.h>#include<stdlib.h>void FindSaddlePoint(int a[][20], int m, int n);main(){int a[20][20]; \/\/数组储存矩阵int m,n; \/\/分别表示矩阵的行数和列数int i,j; \/\/循环变量\/\/人机交互输入数据printf("Input m,n:\\n");scanf("%d,%d",&m,&n);printf("Input...