정올 152 : 배열1 - 형성평가3 질문드립니다!
조회수 429회
10개의 정수를 입력받아 홀수 번째 입력받은 정수의 합과 짝수 번째 입력받은 정수의 합을 출력하는 프로그램을 작성하시오.
위에 문장이 문제이고 제가 코드를 짜 보았습니다.
#include <stdio.h>
int main() {
int arr[10];
int i;
int odd,even=0;
for(i=0;i<10;i++){
scanf(" %d",&arr[i]);
}
for(i=1;i<=10;i++){
if(i%2!=0) odd+=arr[i-1];
else even+=arr[i-1];
}
printf("odd : %d\n",odd);
printf("even : %d\n",even);
return 0;
}
두번째 for문은 i값이 홀수이면 그 값에서 i-1한 즉, 인덱스에 저장되어 있는 값을 odd값에, 짝수이면 even값에 저장하도록 코드를 짜보았습니다
even변수 부분은 올바르게 출력이 되는데 odd부분이 올바르게 출력되지 않습니다ㅠㅠㅠ
(예를 들어 10 20 25 66 83 7 22 90 1 100을 입력하면 odd부분이 이상하게 출력됩니다)
코딩 처음이래서 어느부분에서 오류가 생겼는지 잘 모르겠습니다 부탁드립니다!!
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
int odd,even=0;
가 잘못 되었습니다. odd도 0으로 초기화 해야 합니다.int odd=0, even=0;
으로 수정하고 실행해 보세요.아래 코드 참고하세요.
- 코드
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int arr[10]; int i; int odd = 0, even = 0; for (i = 0; i < 10; i++) { scanf(" %d", &arr[i]); } for (i = 1; i <= 10; i++) { if (i % 2 != 0) odd += arr[i - 1]; else even += arr[i - 1]; } printf("odd : %d\n", odd); printf("even : %d\n", even); return 0; }
- 결과
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력