您能告诉我代码有什么问题吗?
#include <stdlib.h>
#include <stdio.h>
int main()
{
int CurrentYear;
int BornYear;
int age = CurrentYear - BornYear;
printf("What year is it?\n");
scanf("%d", &CurrentYear);
//printf("Year check: %d\n", CurrentYear);
printf("What year you were born?\n");
scanf("%d", &BornYear);
//printf("Year check: %d\n", BornYear);
printf("You are %d years old\n", age);
return 0;
}
结果我得到一些奇怪的数字。
答案 0 :(得分:4)
C中的表达式不是公式。这个:
int age = CurrentYear - BornYear;
并不意味着age
的值将总是为CurrentYear - BornYear
。这意味着根据这些变量的当前值,在代码中的 处将age
设置为CurrentYear - BornYear
。这两个变量都未初始化,因此它们的值不确定。
您需要将age
和CurrentYear
中的读入内容移至之后:
BornYear
答案 1 :(得分:0)
嗨Madnevil,欢迎来到StackOverflow;
由于程序指令的顺序错误而导致错误的结果,您正在计算年龄,然后再阅读.m2
和CurrentYear
:
正确的方法是:
BornYear
您还可能会问,为什么结果尚未为0,因为您尚未初始化变量?
答案是,我的C语言编程有所不同,它需要从Memory中获取随机变量。因此,作为一种好的做法,请始终初始化变量