私は C プログラミングを独学で学んでいますが、関数間で変数を使用するのが難しいところまで来ました。
このプログラムをコンパイルして実行すると、関数 askBirthYear は正しい値を返しますが、sayAgeInYears は 0 またはガベージ値を返します。変数birthYearの使用方法に関係があると思いますが、問題を解決する方法に困惑しています。
コードは次のとおりです。
#include <stdio.h>
#include <stdlib.h>
int askBirthYear(int);
void sayAgeInYears(int);
int birthYear;
int main(void)
{ askBirthYear(birthYear);
sayAgeInYears(birthYear);
return EXIT_SUCCESS;
}
int askBirthYear(int birthYear)
{
printf("Hello! In what year were you born?\n");
scanf("%d", &birthYear);
printf("Your birth year is %d.\n", birthYear);
return birthYear;
}
void sayAgeInYears(int birthYear)
{
int age;
age = 2012 - birthYear;
printf("You are %d years old.\n", age);
}