Bu basit programla ilgili sorunlarınız var mı

0

Soru

Programın, dob'larını cari yıldan çıkararak kullanıcıların yaşını hesaplaması yeterlidir. Programı çalıştırdığımda başarılı bir şekilde derler, ancak -215863352 gibi uzun bir sayı alırım. If ve else koşulları sadece bunları test etmek için eklenir, c'deki sözdizimini anladığımdan emin olmak için bunları kullanarak çeşitli programlar yazıyordum. Basit bir şeyi kaçırdığımı ancak çözemediğimi anladım.

#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

Kullanıcıdan girdi alınmadan önceki yaşı hesaplıyorsunuz. Yani age değişken bir çöp değeri saklıyor.

Çözüm:

Kullanıcıdan girdiyi aldıktan sonra yaş hesaplamasını, yani girdiyi aldıktan sonra konumlandırın cyear scanf kullanarak. Doğru kod aşağıda verilmiştir #içermek sa>

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

sorun, başlatma sırasında ortaya çıkmış gibi görünüyor.
ali balhtiari

Merhaba, so'ya hoş geldiniz! Lütfen cevabınızın bir açıklamasını ekleyin, sadece kodu değil. :)
Docteur

Başlatmadan önce bir hesaplamanız varsa (örneğin age=cyear_year), değişkeninizin mevcut montajını bilmediğiniz için yanlış cevaba yol açacaktır .ve hafızadan bir miktar değer alır.
ali balhtiari

Diğer dillerde

Bu sayfa diğer dillerde

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