연재 완료/C Lang 예제코드 모음

C언어 실습문제 풀이 CH6 (1)

라이피 (Lypi) 2018. 5. 12. 14:01
반응형

1. 10명의 성적을 배열로 입력받고, 각 점수에 대한 석차를 구하는 프로그램을 작성하라.

#include <stdio.h>

int main()
{
	const int N = 10;
	int score[N];

	//입력받기
	int i = 0;
	while (i < N) {
		printf("%d번째 점수를 입력하세요 (범위 0~100) : ", i); scanf_s("%d", &score[i]);

		if (score[i] < 0 && score[i] > 100) {
			printf("입력하신 점수가 범위를 벗어났습니다. \n");
			printf("다시 입력해주세요 \n");
			continue;
		}
		i++;
	}

	//삽입 정렬... 이 맞나?
	for (i = 0; i < N-1; i++) {
		for (int j = i+1; j < N; j++) {
			//값 교환은 xor swap으로
			if (score[i] < score[j]) {
				score[i] ^= score[j];
				score[j] ^= score[i];
				score[i] ^= score[j];
			}
		}
	}

	//출력하기
	for (i = 0; i < N; i++) {
		printf("%d등 %d점 \n", i + 1, score[i]);
	}

}

//책에 소개된 정렬이 맘에 안 들어서 좀 나은 정렬 하나 찾아서 넣어본 정도...


반응형