c 홀수이면 배열의 앞에서부터 채워나가고 짝수이면 뒤에서부터 채우기
조회수 842회
int main(void)
{
int temp[10];
int arr[10];
int a = 0, b = 0;
for (int i = 0; i < 10; i++)
{
scanf("%d", &arr[i]);
temp[i] = arr[i];
}
for (int i = 0; i < 10; i++)
{
if (arr[i] % 2 == 0)
{
arr[9-a] = temp[i];
a++;
}
else
{
arr[b] = temp[i];
b++;
}
}
for (int i = 0; i < 10; i++)
printf("%d ", arr[i]);
return 0;
}
입력받은 숫자가 홀수이면 배열의 앞에서부터 채워나가고 짝수이면 뒤에서부터 채워나가는 형식이 되게끔 코딩을 한건데 결과가 다릅니다.
뭐가 문젠지 감이 안옵니다.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
#include <stdio.h> int main(void) { int temp[10]; int arr[10]; // 이건 결과를 넣는거로만 생각 int a = 0, b = 0; for (int i = 0; i < 10; i++) { scanf("%d", &temp[i]); // temp[i] = arr[i]; } for (int i = 0; i < 10; i++) { // if (arr[i] % 2 == 0) // 이건 결과 넣는곳인데 이곳을 분기시키면 변경된 값이 반영되버리는 현상이 발생함. if (temp[i] % 2 == 0) { arr[9-a] = temp[i]; a++; } else { arr[b] = temp[i]; b++; } } for (int i = 0; i < 10; i++) printf("%d ", arr[i]); return 0 /* 기존 코드 결과 13 14 15 16 17 18 19 20 21 22 13 15 17 19 22 21 20 18 16 14 변경 후 13 14 15 16 17 18 19 20 21 22 13 15 17 19 21 22 20 18 16 14 */
댓글 입력