본문 바로가기
C/☞

[33] 연습문제 : 배열 1차원

by TR. 2020. 7. 21.

연습문제 1

int omr[] = {1, 5, 3, 2, 5}; // 모범 답안
int me[5] = {0};			 // 학생 답안
    
// 문제1) OMR 카드
//	. me에 1~5 사이의 랜덤 숫자를 5개 저장 후,
//	. omr과 비교하여 점수출력 (1문제당 20점)
//	. 맞으면 "o", 틀리면 "x" 출력 
더보기
# include <Windows.h>
# include <stdio.h>
# include <time.h>

void main(){
	srand(time(0));

	int omr[] = {1, 5, 3, 2, 5}; // 모범 답안
	int me[5] = {0};			 // 학생 답안

	// 문제1) OMR 카드
	//	. me에 1~5 사이의 랜덤 숫자를 5개 저장 후,
	//	. omr과 비교하여 점수출력 (1문제당 20점)
	//	. 맞으면 "o", 틀리면 "x" 출력 
	int score = 0;
	for(int i=0; i<5; i++){
		me[i] = rand() % 5 + 1;
		if(me[i] == omr[i]){
			printf("o ");
			score = score + 20;
		}else{
			printf("x ");
		}
	}
	printf("\n");
	printf("점수 : %d" , score); printf("\n");



	system("pause");
}

 

연습문제 2~

// 문제2) 성적관리
int score[5] = {10 ,   20,   60 ,  40,   3};
int num[5] =   {1001, 1002, 1003, 1004, 1005};

//문제1) 성적이 60점 이상이면 합격. 합격생 수 출력.
//정답1) 1명
	
//문제2) 학번을 입력하면 점수 출력 
//정답2) 1001 ==> 10

//문제3) 성적을 입력받아 방번호(index) 출력
//정답3) 60 ==> 1003

//문제4) 없는 학번을 입력하면 "없다"라고 출력
//정답4) 1006 ==> "없다"

//문제5) 1등학생의 학번과 성적 출력
//정답5) 1003학번(60점)	
더보기
# include <Windows.h>
# include <stdio.h>

void main(){
	// 문제2) 성적관리

	int score[5] = {10 ,   20,   60 ,  40,   3};
	int num[5] =   {1001, 1002, 1003, 1004, 1005};

	//문제1) 성적이 60점 이상이면 합격. 합격생 수 출력.
	//정답1) 1명
	
	//문제2) 학번을 입력하면 점수 출력 
	//정답2) 1001 ==> 10

	//문제3) 성적을 입력받아 방번호(index) 출력
	//정답3) 60 ==> 1003

	//문제4) 없는 학번을 입력하면 "없다"라고 출력
	//정답4) 1006 ==> "없다"

	//문제5) 1등학생의 학번과 성적 출력
	//정답5) 1003학번(60점)	


	// 풀이)
	//문제1) 성적이 60점 이상이면 합격. 합격생 수 출력.
	//정답1) 1명
	int count = 0;
	for(int i=0; i<5; i++){
		if(score[i] >= 60){
			count += 1;		// count = count + 1;
		}
	}
	printf("합격생 수 = %d\n", count);
	
	//문제2) 학번을 입력하면 점수 출력 
	//정답2) 1001 ==> 10
	printf("학번을 입력하세요 : ");
	int hakbun = 0;
	scanf_s("%d", &hakbun);
	
	for(int i=0; i<5; i++){
		if(hakbun == num[i]){
			printf("성적 = %d\n", score[i]);
		}
	}

	//문제3) 성적을 입력받아 방번호(index) 출력
	//정답3) 60 ==> 1003
	printf("성적을 입력하세요 : ");
	int my_score = 0;
	scanf_s("%d", &my_score);
	
	for(int i=0; i<5; i++){
		if(my_score == score[i]){
			printf("학번 = %d\n", num[i]);
		}
	}

	//문제4) 없는 학번을 입력하면 "없다"라고 출력
	//정답4) 1006 ==> "없다"
	printf("학번을 입력하세요 : ");
	hakbun = 0;
	scanf_s("%d", &hakbun);

	int check = -1;
	for(int i=0; i<5; i++){
		if(hakbun == num[i]){
			check = i;
		}
	}

	if(check == -1){
		printf("없다\n");
	}else{
		printf("성적 = %d\n", score[check]);
	}

	//문제5) 1등학생의 학번과 성적 출력
	//정답5) 1003학번(60점)
	int max_score = 0;
	int max_idx = 0;
	
	for(int i=0; i<5; i++){
		if(max_score < score[i]){
			max_score = score[i];
			max_idx = i;
		}
	}
	printf("%d학번(%d점)\n", num[max_idx], max_score);




	system("pause");
}

'C > ' 카테고리의 다른 글

[34]-A. Mini Lotto  (0) 2020.07.21
[34] Mini Lotto  (0) 2020.07.21
[32] 배열  (0) 2020.07.21
[00] 지역변수  (0) 2020.07.18
[31]-A. 소수 찾기  (0) 2020.07.15

댓글