-2
我有这样的代码:问题与C程序
#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”是分配最后一个“我”的值,但我不知道如何解决它。
你的编译器警告你什么?也许你应该问一个关于*的问题,首先! – Sebivor
问题是错误的。它应该包含以下细节:a)代码应该做什么,b)**期望的输出是什么**,c)**实际输出是什么**。这些信息都不在您的问题中。 –
编译所有警告和调试信息(例如,如果使用[GCC](http://gcc.gnu.org/)...),则使用'gcc -Wall -g'。改善你的(错误的)代码以获得没有警告。然后**使用调试器**('gdb') –