0
#include <stdio.h>

int main(int argc, char *argv[]) 
{

float num1 = 0;
float num2 = 0;
float num3 = 0;
float sum = num1 + num2 + num3;
float average = sum / 3;


printf("Enter three numbers:\n"); //Enter three floats
scanf("%f %f %f", &num1, &num2, &num3); //Assign to num1, num2, num3 

printf("The sum of these three numbers is %f.\n", sum);//Print sum
printf("The average of these numbers is %f.\n", average);//Print average

}

これが表示されます。

Enter three numbers:

12.0

10.0

12.0

The sum of these three numbers is 0.000000.

The average of these numbers is 0.000000.
4

3 に答える 3

10

C プログラムは、一度に 1 つの命令を上から下に実行します。数値を受け入れる前にsumとを計算しました。3 つの数値がすべて 0 だったため、これはand とaverage評価されました。sum=0average=0

main(int argc, char *argv[]) {
    float num1,num2,num3,sum,average;

    printf("Enter three numbers:\n"); //Enter three floats
    scanf("%f %f %f", &num1, &num2, &num3); //Assign to num1, num2, num3 

    sum = num1 + num2 + num3;
    average = sum / 3;

    printf("The sum of these three numbers is %f.\n", sum);//Print sum
    printf("The average of these numbers is %f.\n", average);//Print average
    return 0;
}
于 2013-10-12T23:56:28.247 に答える
7

C は、ループや条件なしの関数で上から下に実行されることに注意してください。

num1、num2、および num3 をそれぞれ 0 として作成し、数値を入力する前にそれらの合計と平均を求めました。

次のようにします。

float num1 = 0;
float num2 = 0;
float num3 = 0;
float sum = 0;
float average = 0;   

printf("Enter three numbers:\n"); //Enter three floats
scanf("%f %f %f", &num1, &num2, &num3); //Assign to num1, num2, num3 

sum = num1 + num2 + num3; //calculate
average = sum / 3;

printf("The sum of these three numbers is %f.\n", sum);//Print sum

printf("The average of these numbers is %f.\n", average);//Print average
于 2013-10-12T23:56:39.900 に答える
5

変数定義の使い方を誤解しているようです。これらは:

float num1 = 0;
float num2 = 0;
float num3 = 0;
float sum = num1 + num2 + num3;
float average = sum / 3;

読み取りが完了した後に が計算される方法を定義するのではなくsum、実際にこれらの値を使用して を計算しsum、プログラムが最初に を呼び出す前にを計算しaverageます。0scanf

scanf("%f %f %f", &num1, &num2, &num3);
sum = num1 + num2 + num3;                     // <-- place it here
average = sum / 3;
于 2013-10-12T23:57:46.723 に答える