혼자 공부하는 C언어 10챕터 도전실전예제
문제
1~45 중에 6개의 서로 다른 수를 배열에 입력하고 출력합니다. 입력한 수가 이미 저장된 수와 같으면 에러 메시지를 출력하고 다시 입력합니다. 다음 함수의 선언과 정의를 참고하고 빈 부분을 채워 완성합니다.
풀이과정:
#include <stdio.h>
void input_nums(int* lotto_nums);
void print_nums(int* lotto_nums);
int main(void) {
int lotto_nums[6];
input_nums(lotto_nums);
print_nums(lotto_nums);
return 0;
}
void input_nums(int* lotto_nums) {
for (int i = 0; i < 6; i++) {
int temp = 0;
int error_count = 0;
printf("번호 입력: ");
scanf("%d", &temp);
for (int j = 0; j < i; j++) {
if (temp == lotto_nums[j]) {
printf("같은 번호가 있습니다!\n");
error_count++;
i--;
//에러가 나면 i를 하나 빼서 다시 반복하게 한다.
}
}
//에러 확인용 반복문
if (error_count == 0) lotto_nums[i] = temp;
}
}
void print_nums(int* lotto_nums) {
printf("로또 번호 : ");
for (int i = 0; i < 6; i++) {
printf("%d ", lotto_nums[i]);
}
}