【问题标题】:Need help trying to calculate averages based on user input. C需要帮助尝试根据用户输入计算平均值。 C
【发布时间】:2014-09-23 18:07:40
【问题描述】:
int main() {
int miles_ran, i;
float miles_ran_time, avg_time, sum;

//ask's user for how many miles they ran
printf("How many miles did you run?\n");
scanf("%d", &miles_ran);

//ask's the user for each time that it took them to run each mile
//loop continues asking for each of their time depending on the number inputed above
for (i = 1; i <= miles_ran; i++){
    printf("\nHow long did it take you to run mile #%d\n", i);
    scanf("%d", &miles_ran_time);
}

printf("\nYour average time to run a mile is %.3f.\n", avg_time);

return 0;
}

在尝试获取用户输入的每个不同时间的平均值时,我需要帮助。我似乎无法弄清楚如何去做。例如,如果用户输入他们跑了 3 英里,而这 3 英里的时间分别是 10、10.5 和 9;平均值将达到 9.83。

【问题讨论】:

    标签: c average


    【解决方案1】:

    简单地总结你读到的所有时间并除以总里程数:

    sum = 0;
    
    for (i = 1; i <= miles_ran; i++){
        printf("\nHow long did it take you to run mile #%d\n", i);
        scanf("%d", &miles_ran_time);
        sum += miles_ran_time;
    }
    
    avg_time = sum / miles_ran;
    

    【讨论】:

      【解决方案2】:

      做你自己的功课!

      您的 9.83 是如何提出的?您将所有数字加在一起并除以英里数,因此在代码中执行相同的操作。在循环中保持一个运行总和 (sum += miles_ran_time;) 然后计算 avg_time。

      【讨论】:

        【解决方案3】:

        您需要将时间相加并除以英里数。

         #include <stdio.h>
            int main() {
                int miles_ran, i;
                float miles_ran_time, avg_time, sum;
                float time  = 0;
        
                //ask's user for how many miles they ran
                printf("How many miles did you run?\n");
                scanf("%d", &miles_ran);
        
                //ask's the user for each time that it took them to run each mile
                //loop continues asking for each of their time depending on the number inputed above
                for (i = 1; i <= miles_ran; i++){
                    printf("\nHow long did it take you to run mile #%d\n", i);
                    scanf("%f", &miles_ran_time);
                    time += miles_ran_time;
                }
        
                printf("\nYour average time to run a mile is %.3f.\n", time/miles_ran);
        
                return 0;
            }
        

        【讨论】:

          【解决方案4】:

          一些基本错误。请参阅下面的内联 cmets。

          #include <stdio.h>
          
          int main() {
          int miles_ran=0, i=0;      /* initialize your variables */
          int c;
          float miles_ran_time=0.0, avg_time=0.0, sum=0;
          
          //ask's user for how many miles they ran
          printf("How many miles did you run?\n");
          scanf("%d", &miles_ran);
          do { c=getchar(); } while ( c != '\n' && c != EOF );        /* flush input buffer after scanf */
          
          //ask's the user for each time that it took them to run each mile
          //loop continues asking for each of their time depending on the number inputed above
          for (i = 1; i <= miles_ran; i++){
              printf("\nHow long did it take you to run mile #%d\n", i);
              scanf("%f", &miles_ran_time);                       
              do { c=getchar(); } while ( c != '\n' && c != EOF );    /* flush input buffer after scanf */
              sum += miles_ran_time;                                  /* compute 'sum' from miles ran time */
          }
          
          avg_time = sum / miles_ran;                                 /* compute average */
          
          printf("\nYour average time to run a mile is %.3f.\n", avg_time);
          
          return 0;
          }
          

          输出:

          $ ./bin/avg
          How many miles did you run?
          5
          
          How long did it take you to run mile #1
          10.1
          
          How long did it take you to run mile #2
          9
          
          How long did it take you to run mile #3
          9.5
          
          How long did it take you to run mile #4
          9.8
          
          How long did it take you to run mile #5
          9.7
          
          Your average time to run a mile is 9.620.
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多