2017-11-16 9 views
0

두 개의 다른 배열에 저장된 double을 읽고 추가 한 두 배열을 함께 인쇄하는 프로그램을 작성하려고합니다. 내 코드를 테스트하려고하지만 배열을 채울 때 첫 번째 인덱스가 전달 된 후 배열에 채우기가 인쇄되지 않습니다. 입력 내용이 이중 배열을 완전히 채우지 않습니다.

#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에 해당)을 사용하십시오.