#include <stdio.h>
#define GRAPH 5 // 이 숫자당 별 1개로 그래프 그림.
#define NUM 3 // 이 숫자만큼 학생수를 입력받음.
void draw(int kor, int math, int eng, int rea, int ave);
int main()
{
char stu[NUM][20] = { 0, { 0, } };
int kor[NUM] = { 0, }, math[NUM] = { 0, }, eng[NUM] = { 0, }, rea[NUM] = { 0, }, ave[NUM] = { 0, };
int i, j;
for (i = 0; i < NUM; i++){
printf("%d번째 학생입니다. \n", i + 1);
printf("이름을 입력해 주세요 : ");
gets(stu[i]);
while (1){
printf("국어 점수를 입력해 주세요. : ");
j = scanf("%d", &kor[i]);
if (j == 0 || kor[i] < 0 || kor[i] > 100) {
printf("잘못된 입력입니다 \n");
printf("다시 입력해 주세요. \n");
fflush(stdin);
}
else
break;
}
while (1) {
printf("수학 점수를 입력해 주세요. : ");
j = scanf("%d", &math[i]);
if (j == 0 || math[i] < 0 || math[i] > 100){
printf("잘못된 입력입니다. \n");
printf("다시 입력해 주세요. \n");
fflush(stdin);
}
else
break;
}
while (1) {
printf("영어 점수를 입력해 주세요. : ");
j = scanf("%d", &eng[i]);
if (j == 0 || eng[i] < 0 | eng[i] > 100){
printf("잘못된 입력입니다. \n");
printf("다시 입력해 주세요. \n");
fflush(stdin);
}
else
break;
}
while (1) {
printf("탐구 점수를 입력해 주세요. : ");
j = scanf("%d", &rea[i]);
if (j == 0 || rea[i] < 0 || rea[i] > 100){
printf("잘못된 입력입니다. \n");
printf("다시 입력해 주세요. \n");
fflush(stdin);
}
else
break;
}
printf("\n");
fflush(stdin);
ave[i] = (kor[i] + math[i] + eng[i] + rea[i]) / 4;
}
for (i = 0; i < NUM; i++){
printf("%d번째 학생입니다. \n", i + 1);
printf("이름 : %s \n\n", stu[i]);
draw(kor[i], math[i], eng[i], rea[i], ave[i]);
printf("\n");
}
return 0;
}
void draw(int kor, int math, int eng, int rea, int ave){
int x, y = 100 / GRAPH, kg, mg, eg, rg, ag;
kg = (kor + 4) / GRAPH, mg = (math + 4) / GRAPH, eg = (eng + 4) / GRAPH;
rg = (rea + 4) / GRAPH, ag = (ave + 4) / GRAPH; //올림 하기 위해 +4
for (x = 1; x <= 100 / GRAPH; x++){
printf("%d\t", y*GRAPH);
if (kg >= y)
printf("*\t");
else
printf("\t");
if (mg >= y)
printf("*\t");
else
printf(" \t");
if (eg >= y)
printf("*\t");
else
printf(" \t");
if (rg >= y)
printf("*\t");
else
printf(" \t");
if (ag >= y)
printf("*\n");
else
printf(" \n");
y--;
}
printf("0\t국어\t수학\t영어\t탐구\t평균\n");
printf("\t%d\t%d\t%d\t%d\t%d\n", kor, math, eng, rea, ave);
}
- 5 단위로 올림하라니까;;그거만 예외처리를 제외하면 거의 정답. 범위 제한이나 잘못된 입력에 대한 예외처리는 안했네. 설계가 아직 미숙한거는 어쩔 수 없지만 잘했어 잘했어 - 원준연
* 내일
한국사 시간에 고쳐보도록 노력해 볼게요.