我有以下代码:

#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/

10-11 21:31