试图计算年龄在C

时间:2019-03-18 20:56:25

标签: c

您能告诉我代码有什么问题吗?

#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;
}

结果我得到一些奇怪的数字。

2 个答案:

答案 0 :(得分:4)

C中的表达式不是公式。这个:

int age = CurrentYear - BornYear;

并不意味着age的值将总是CurrentYear - BornYear。这意味着根据这些变量的当前值,在代码中的 处将age设置为CurrentYear - BornYear。这两个变量都未初始化,因此它们的值不确定。

您需要将ageCurrentYear中的读入内容移至之后

BornYear

答案 1 :(得分:0)

嗨Madnevil,欢迎来到StackOverflow;

由于程序指令的顺序错误而导致错误的结果,您正在计算年龄,然后再阅读.m2CurrentYear

正确的方法是:

BornYear

您还可能会问,为什么结果尚未为0,因为您尚未初始化变量?

答案是,我的C语言编程有所不同,它需要从Memory中获取随机变量。因此,作为一种好的做法,请始终初始化变量