作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
你好 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/
我是一名优秀的程序员,十分优秀!