我有以下代码:
#include <stdio.h>
#include<conio.h>
main(){
float promAnual=0.0;
int numMeses, numToneladas,i, suma = 0, mesTon = 0;
float toneladas[12];
for(i = 1; i < 13; i++){
printf("Ingrese la cantidad de toneladas del mes #%d->", i);
scanf("%f", &toneladas[i] );
}
for(i = 1; i < 13; i++){
suma = suma + toneladas [i];
}
promAnual = suma / 12.0;
for(i = 1; i < 13; i++){
if(toneladas[i]>promAnual){
numMeses = numMeses + 1;
}
}
numToneladas = 0;
mesTon = 0;
for(i = 1; i < 13; i++){
if(toneladas[i]>toneladas[i+1]){
mesTon = i;
numToneladas = toneladas[i];
}
}
printf("El promedio anual es: %0.2f, %d mes(es) tuvieron mayor cosecha que el promedio anual, y el mayor numero de toneladas se produjo en el mes #%d con %0.2f", promAnual,numMeses,mesTon, numToneladas);
}
问题是最后一个printf中的最后2个变量显示了错误的值,我知道为什么,但是我不知道如何解决它,这是因为最后一个“ for”正在分配最后一个值“ i”,但我不知道如何解决。
最佳答案
您最好检查“ for”循环的结束条件,数组toneladas有12个存储,从0到11,但是将其设置为1到12,可能会导致您的问题。
请尝试设置“ for(i = 0; i
关于c - C程序问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42477147/