#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
}
Run Code Online (Sandbox Code Playgroud)
这是显示的内容.
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.
Run Code Online (Sandbox Code Playgroud)
Val*_*ade 10
C程序一次从上到下执行一条指令.您已计算sum并average在接受数字之前.这评估为sum=0并且average=0因为所有三个数字都是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;
}
Run Code Online (Sandbox Code Playgroud)
请记住,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
Run Code Online (Sandbox Code Playgroud)
您似乎误解了变量定义的用法.这些:
float num1 = 0;
float num2 = 0;
float num3 = 0;
float sum = num1 + num2 + num3;
float average = sum / 3;
Run Code Online (Sandbox Code Playgroud)
没有定义的方式sum读取完成后,将被计算,但实际上使用这些值和计算sum,并average为0程序调用之前先scanf.
scanf("%f %f %f", &num1, &num2, &num3);
sum = num1 + num2 + num3; // <-- place it here
average = sum / 3;
Run Code Online (Sandbox Code Playgroud)