具有问题,这个简单的程序

0

的问题

该程序应该只是简单地计算出用户的年龄减去他们的出生日期从目前的一年。 当我运行程序汇编成功的,但我获得一个长期的数字,如-215863352. 如果和其他条件加入只是为了测试它们是我写作的各种程序使用他们,以确保我理解的语法在c。 我想我失去了简单的东西但不能图。

#include <stdio.h>
int main()
{
    int year;
    int cyear;
    int age = cyear - year;

    printf("Please enter the year you were born: \n");
    scanf("%i", &year);
    printf("Now enter the current year: \n");
    scanf("%i", &cyear);

    if (1+1 == 2){
        printf("You must be %i", age);
    }
    else {
        printf("Cannot compute age, GOODBYE:\n");
    }
    return 0;
}
2
0

你计算的年龄之前的输入是从用户。 所以 age 变量储存垃圾的价值。

方案:

位置计算的年龄后,如果输入的用户后输入的 cyear 使用scanf. 正确的代码如下 #包括<stdio.h>

int main()
{
    int year;
    int cyear;
    int age =0;     //initialise with 0

    printf("Please enter the year you were born: \n");
    scanf("%i", &year);
    printf("Now enter the current year: \n");
    scanf("%i", &cyear);
    
    age = cyear - year;     //note the change here

    if (1+1 == 2){
        printf("You must be %i", age);
    }
    else {
        printf("Cannot compute age, GOODBYE:\n");
    }
    return 0;
}
2021-11-23 08:07:23
-2
enter code here
   #include <stdio.h>
   int main()
   {
  long long int year;
  printf("Please enter the year you were born: \n");
scanf("%lld",&year);
long long int cyear;
  printf("Now enter the current year: \n");
scanf("%lld",&cyear);

long long  int age = cyear-year;

if (1){
    printf("You must be %lld", age);
}
else {  printf("Now enter the current year: \n");
scanf("%lld",&cyear);

    printf("Cannot compute age, GOODBYE:\n");
}
return 0;

}

2021-11-23 08:23:51

它看来,问题出现了怎么一回事,因为初始化。
ali balhtiari

嗨,欢迎这样的! 请包括一个解释你的答案,不仅仅是代码。 :)
Docteur

如果有一个计算(例如年龄=cyear_year)之前的初始化将导致错误的答案,因为你不知道本山的变量。它得到了一些值从存储器。
ali balhtiari

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................