コンピュータサイエンスの授業でプロジェクトを行っているときに、配列に問題が発生しました。基本的には、ユーザーがデータを入力したい年数の間、ユーザーからの入力を取得する必要があります。次に、その入力を使用して2つの配列を作成する必要があります(1つはデータが必要な実際の年用で、もう1つはデータ自体用です)。次に、ユーザーが入力した年とデータを印刷する必要があります。
問題は、これを行うと、年のデータは正常に出力されますが、年自体はランダムなメモリアドレスとして出力されることです。もう一つの悩みの種は、これは私が3年以上行ったときにのみ起こるということです。私が2つ以下をするとき、他のすべては大丈夫です。年の変数はintであり、データの変数はdoubleです。
int numberofyears;
printf("Enter the number of years you wish to take data for: " );
scanf("%d",&numberofyears); //take input for how many times arrays run
int years[numberofyears];
double dataforyear[numberofyears];
int a;
printf("Enter the years and their respective data");
for (a=0;a<numberofyears;a++){
scanf("%d %lf",&years[a],&dataforyear[a]);} //take inputs for both arrays
int b;
for (b=0;b<numberofyears;b++){
printf("%d %.2lf\n",years[b],dataforyear[b]);}
入力:
Enter the number of of years you wish to take data for: 5
Enter the years and their respective data
1950 200.96
2000 300.55
プリントアウト:
1950 200.96
2000 300.55
入力:
Enter the number of of years you wish to take data for: 5
Enter the years and their respective data
1956 325.21
1989 386.22
2003 400.00
プリントアウト:
0 325.21
1081671680 386.22
2003 400.00
そして、3年を超える他のものはこれを行います。5年を超えるものは、何らかの理由で3のように昨年を維持しないように見えますが、それが役立つ場合は。