문제

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]);
	}
}

Tags:

Updated: