gpt4 book ai didi

c - 为什么这个程序会这样呢? C

转载 作者:行者123 更新时间:2023-11-30 21:43:50 26 4
gpt4 key购买 nike

你好 stackOverflowers!有人可以解释为什么当我将数组从 1 充电到 10 时,输出显示最小值为 1,最大值为 10,而当我将数组从 10 启动到 1 时,输出为最小值为 2,最大值为 10 .我认为嵌套的 if 序列是正确的,因为计数器显示正确的偶数和正确的奇数,但我认为我遗漏了一些东西......程序应输出数组内的最小和最大偶数。

感谢您的回答!

/*EVEN MAX AND MIN POINTER FUNCTION*/

#include <stdio.h>

#define MAXARRAY 100

typedef int ArrayTable[MAXARRAY];

void chargeArray(ArrayTable,int);
void maxMinEven(const ArrayTable, int, int *, int *,int *,int *);

int main(){
ArrayTable intTable;
int maxim,minim;
int contEven=0,contOdd=0;
int n=10;

printf("Input %d integer number:\n",n);
chargeArray(intTable,n);
maxMinEven(intTable,n,&minim,&maxim,&contEven,&contOdd);
printf("The minimun even of the %d number is %d and the maximun %d. Even %d Odd %d\n",n,minim,maxim,contEven,contOdd);
system("pause");
return 0;
}
void chargeArray(ArrayTable t,int n){
int i=0;
int number;
for(i=0;i<n;i++){
scanf("%d",&number);
t[i]=number;
}
}

void maxMinEven(const ArrayTable t, int n, int *min, int *max,int *contEven,int *contOdd){
int i;
*min=t[0];
*max=t[0];

for(i=0;i<n;i++){
if(t[i]%2==0){
(*contEven)++;/*incremento el contenido de la direccion de memoria de contPar*/

if(t[i]>*max)
*max=t[i];

if(t[i]<*min)
*min=t[i];

}else{
(*contOdd)++;/*incremento el contenido de la direccion de memoria de contImp*/
}

}
}

最佳答案

您将最小值设置为等于数组的第一个元素,无论它是否为偶数。

*min=t[0];

在循环内,您将这些值与该最小值进行比较。您会得到这个结果,因为 1 比数组中的任何其他偶数都小。

希望我能有所帮助,

关于c - 为什么这个程序会这样呢? C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30194871/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com