Având probleme cu acest program simplu

0

Problema

Programul este doar pur și simplu trebuie să calculeze varsta de utilizatori prin scăderea lor dob din anul curent. Când am rula programul se compilează cu succes, dar am obține un număr lung, cum ar fi -215863352. Dacă și altcineva condiții sunt adăugate doar pentru a le testa, am scris diverse programe le folosesc pentru a face sigur că am înțeles sintaxa din c. M-am gândit că-mi lipsește ceva simplu, dar nu-mi dau seama.

#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

Sunteți de calcul a vârstei înainte de intrare este luat de la utilizator. Deci age variabila este stocarea o valoare gunoi.

Soluție:

Poziția calculul de vârstă după ce a luat de intrare de la utilizator, care este, după luarea de intrare de cyear utilizand scanf. Codul corect este dat de mai jos #include <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

se pare că problema a apărut pentru inițializare.
ali balhtiari

Salut, bine ati venit la LUCRU! Vă rugăm să includeți o explicație de răspunsul tău, nu doar codul. :)
Docteur

Dacă aveți un calcul (de exemplu vârsta=cyear_year) înainte de inițializare se va duce la răspuns greșit pentru că nu știi prezent muntele de variabilă .și devine o valoare din memorie.
ali balhtiari

În alte limbi

Această pagină este în alte limbi

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