2017-11-16 7 views
0

2つの異なる配列に格納されている倍精度を読み込み、2つの配列を一緒に追加して出力するプログラムを作成しようとしています。私は自分のコードをテストしようとしていますが、配列を塗りつぶすと、最初のインデックスが渡された後に配列に塗りつぶされません。入力を読み込んでもダブル配列が完全に埋められない

#include <stdio.h> 

int main() { 
    double arrayA[5]; 
    double arrayB[5]; 
    double arrayC[5]; 

    printf("Enter 5 doubles for array A\n"); 
    for (int i = 0; i < 5; i ++) { 
     scanf("%lf", arrayA); 
     printf("%lf\n", arrayA[i]); 
    } 
    printf("Enter 5 doubles for array B\n"); 
    for (int i = 0; i < 5; i ++) { 
     scanf("%lf", arrayB); 
     printf("%lf\n", arrayB[i]); 
    } 

    printf("Here are the two arrays added together\n"); 
    for (int i = 0; i < 5; i ++) { 
     arrayC[i] = arrayA[i] + arrayB[i]; 
    } 

    for (int i = 0; i < 5; i ++) { 
     //printf("%lf\n", arrayA[i]); 
     //printf("%lf\n", arrayB[i]); 
     printf("%lf\n", arrayC[i]); 
    } 


} 

printf("%lf\n", arrayA[i])素子番目」iを出力し、一方、これは私が最初の配列

Enter 5 doubles for array A 
1 
1 
1.000000 
2 
2 
0.000000 
3 
3 
0.000000 
4 
4 
0.000000 
5 
5 
0.000000 
+4

'scanf("%lf "、arrayA);' ???あなたは 'scanf("%lf "、&arrayA [i]);'を意味しましたか? –

答えて

1

scanf("%lf", arrayA)のコンソールで取得出力は常に、arrayAの最初の要素に読み込むれます。したがって、配列の初期化されていない部分にアクセスしているため、未定義の動作が発生します。 scanf("%lf", &arrayA[i])(およびarrayBに相当)を使用してください。

関連する問題