【发布时间】:2015-05-12 15:09:11
【问题描述】:
你好 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*/
}
}
}
【问题讨论】:
-
是时候学习如何调试了。
-
请更明确一点,这对我来说不是那么明显。错误在哪里?
-
欢迎来到 StackOverflow!寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable example。
-
您的标题不能反映您的要求,请选择一个更好的标题。
-
好的,我下次就这样。再次感谢!