More actions
imported>asd123 No edit summary |
imported>crisis03 No edit summary |
||
| (7 intermediate revisions by 3 users not shown) | |||
| Line 16: | Line 16: | ||
* --사골국물처럼 우려낸-- 성적 통계 프로그램. | * --사골국물처럼 우려낸-- 성적 통계 프로그램. | ||
** 입력받은 세 명의 학생들의 성적을 가로 그래프로 보여주는 프로그램.(세로 그래프로 구현한다면 중간고사 끝나는 날 밥을 사겠다!) | ** 입력받은 세 명의 학생들의 성적을 가로 그래프로 보여주는 프로그램.(세로 그래프로 구현한다면 중간고사 끝나는 날 밥을 사겠다!) | ||
** 진짜요? - [[최다인]] | |||
** 과목은 언, 수, 외, 탐. 그리고 평균에 대한 그래프도 보여줄 것. | ** 과목은 언, 수, 외, 탐. 그리고 평균에 대한 그래프도 보여줄 것. | ||
** 100점 만점. | ** 100점 만점. | ||
| Line 37: | Line 38: | ||
#define NUM 3 // 이 숫자만큼 학생수를 입력받음. | #define NUM 3 // 이 숫자만큼 학생수를 입력받음. | ||
void draw(int kor,int math,int eng,int rea,int ave); | void draw(int kor, int math, int eng, int rea, int ave); | ||
int main() | int main() | ||
{ | { | ||
char stu[NUM][20]={0,{0,}}; | char stu[NUM][20] = { 0, { 0, } }; | ||
int kor[NUM]={0,},math[NUM]={0,},eng[NUM]={0,},rea[NUM]={0,},ave[NUM]={0,}; | int kor[NUM] = { 0, }, math[NUM] = { 0, }, eng[NUM] = { 0, }, rea[NUM] = { 0, }, ave[NUM] = { 0, }; | ||
int i; | int i, j; | ||
for(i = 0 ; i < NUM ;i++){ | for (i = 0; i < NUM; i++){ | ||
printf("%d번째 학생입니다. \n",i+1); | printf("%d번째 학생입니다. \n", i + 1); | ||
printf("이름을 입력해 주세요 : "); | printf("이름을 입력해 주세요 : "); | ||
gets(stu[i]); | gets(stu[i]); | ||
while (1){ | |||
printf("국어 점수를 입력해 주세요. : "); | |||
j = scanf("%d", &kor[i]); | |||
if (j == 0 || kor[i] < 0 || kor[i] > 100) { | |||
printf("잘못된 입력입니다 \n"); | |||
printf("다시 입력해 주세요. \n"); | |||
printf("수학 점수를 입력해 주세요. : "); | 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("영어 점수를 입력해 주세요. : "); | printf("영어 점수를 입력해 주세요. : "); | ||
scanf("%d",&eng[i]); | 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("탐구 점수를 입력해 주세요. : "); | printf("탐구 점수를 입력해 주세요. : "); | ||
scanf("%d",&rea[i]); | j = scanf("%d", &rea[i]); | ||
if (j == 0 || rea[i] < 0 || rea[i] > 100){ | |||
printf("잘못된 입력입니다. \n"); | |||
printf("다시 입력해 주세요. \n"); | |||
fflush(stdin); | |||
} | |||
else | |||
break; | |||
} | |||
printf("\n"); | printf("\n"); | ||
fflush(stdin); | fflush(stdin); | ||
ave[i] = (kor[i]+math[i]+eng[i]+rea[i]) / 4; | ave[i] = (kor[i] + math[i] + eng[i] + rea[i]) / 4; | ||
} | } | ||
for(i = 0;i < NUM ; i++){ | for (i = 0; i < NUM; i++){ | ||
printf("%d번째 학생입니다. \n",i+1); | printf("%d번째 학생입니다. \n", i + 1); | ||
printf("이름 : %s \n\n",stu[i]); | printf("이름 : %s \n\n", stu[i]); | ||
draw(kor[i],math[i],eng[i], rea[i],ave[i]); | draw(kor[i], math[i], eng[i], rea[i], ave[i]); | ||
printf("\n"); | printf("\n"); | ||
} | } | ||
| Line 80: | Line 116: | ||
void draw(int kor,int math,int eng,int rea,int ave){ | void draw(int kor, int math, int eng, int rea, int ave){ | ||
int x , y = 100/GRAPH , kg, mg, eg, rg, ag; | int x, y = 100 / GRAPH, kg, mg, eg, rg, ag; | ||
kg = kor/GRAPH, mg = math/GRAPH, eg = eng/GRAPH | 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++){ | for (x = 1; x <= 100 / GRAPH; x++){ | ||
printf("%d\t",y*GRAPH); | printf("%d\t", y*GRAPH); | ||
if(kg >= y) | if (kg >= y) | ||
printf("*\t"); | printf("*\t"); | ||
else | else | ||
printf("\t"); | printf("\t"); | ||
if(mg >= y) | if (mg >= y) | ||
printf("*\t"); | printf("*\t"); | ||
else | else | ||
printf(" \t"); | printf(" \t"); | ||
if(eg >= y) | if (eg >= y) | ||
printf("*\t"); | printf("*\t"); | ||
else | else | ||
printf(" \t"); | printf(" \t"); | ||
if(rg >= y) | if (rg >= y) | ||
printf("*\t"); | printf("*\t"); | ||
else | else | ||
printf(" \t"); | printf(" \t"); | ||
if(ag >= y) | if (ag >= y) | ||
printf("*\n"); | printf("*\n"); | ||
else | else | ||
printf(" \n"); | printf(" \n"); | ||
y--; | 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 단위로 올림하라니까;;그거만 예외처리를 제외하면 거의 정답. 범위 제한이나 잘못된 입력에 대한 예외처리는 안했네. 설계가 아직 미숙한거는 어쩔 수 없지만 잘했어 잘했어 - [[원준연]] | * 5 단위로 올림하라니까;;그거만 예외처리를 제외하면 거의 정답. 범위 제한이나 잘못된 입력에 대한 예외처리는 안했네. 설계가 아직 미숙한거는 어쩔 수 없지만 잘했어 잘했어 - [[원준연]] | ||
| Line 116: | Line 153: | ||
* 내일 ~~한국사 시간에~~ 고쳐보도록 노력해 볼게요. | * 내일 ~~한국사 시간에~~ 고쳐보도록 노력해 볼게요. | ||
=== 최필립 === | === 최필립 === | ||
*사람은 한계에 몰렸을때 가장 큰 효율이 나오는 법이죠 | |||
#include <stdio.h> | |||
void graph(int x,int y,int z); | |||
int main() | |||
{ | |||
int kor[3]={0,},eng[3]={0,},mat[3]={0,},i=0,count; | |||
while(i<3) | |||
{ | |||
printf("%d째 학생의 국어성적을 입력해주세요. : ",i+1); | |||
scanf("%d",&kor[i]); | |||
printf("%d째 학생의 영어성적을 입력해주세요. : ",i+1); | |||
scanf("%d",&eng[i]); | |||
printf("%d째 학생의 수학성적을 입력해주세요. : ",i+1); | |||
scanf("%d",&mat[i]); | |||
i++; | |||
printf("\n"); | |||
} | |||
for(count=0;count<3;count++) | |||
{ | |||
printf("그래프\n"); | |||
graph(kor[count],eng[count],mat[count]); | |||
printf("\n\n"); | |||
} | |||
return 0; | |||
} | |||
void graph(int x,int y,int z) | |||
{ | |||
int a,b,c,exa,exb,exc; | |||
a=x/5; | |||
b=y/5; | |||
c=z/5; | |||
exa=x; | |||
exb=y; | |||
exc=z; | |||
printf("국어 : "); | |||
while(a!=0) | |||
{ | |||
printf("*"); | |||
a--; | |||
} | |||
if(exa%5==0) printf("\n"); | |||
else printf("*\n"); | |||
printf("영어 : "); | |||
while(b!=0) | |||
{ | |||
printf("*"); | |||
b--; | |||
} | |||
if(exb%5==0) printf("\n"); | |||
else printf("*\n"); | |||
printf("수학 : "); | |||
while(c!=0) | |||
{ | |||
printf("*"); | |||
c--; | |||
} | |||
if(exc%5==0)printf("\n"); | |||
else printf("*\n"); | |||
} | |||
=== 홍성현 === | === 홍성현 === | ||
| Line 123: | Line 241: | ||
a=a-5 이런식으로 해서 a<0이 되기 전까지 반복문으로 삥삥 돌리구 | a=a-5 이런식으로 해서 a<0이 되기 전까지 반복문으로 삥삥 돌리구 | ||
세로 그래프 출력하려면 자릿수 맞춰서 때려박아봐야징! | 세로 그래프 출력하려면 자릿수 맞춰서 때려박아봐야징! | ||
함수 이해를 제대로 못했어요.. -_.. | |||
#include <stdio.h> | |||
int main() | |||
{ | |||
int a,i=0,kor,mat,eng,tam,av; | |||
char st[10],c_kor[20]={0,},c_mat[20]={0,},c_eng[20]={0,},c_tam[20]={0,},c_av[20]={0,}; | |||
for(a=3;a>0;a--){ | |||
printf("이름을 입력하세요\n"); | |||
scanf("%s",st); | |||
printf("국어 성적을 입력하세요\n"); | |||
scanf_s("%d",&kor); | |||
printf("수학 성적을 입력하세요\n"); | |||
scanf_s("%d",&mat); | |||
printf("외국어 성적을 입력하세요\n"); | |||
scanf_s("%d",&eng); | |||
printf("탐구 성적을 입력하세요\n"); | |||
scanf_s("%d",&tam); | |||
av=(kor+mat+eng+tam)/4; | |||
printf("%s",st); | |||
printf("\n국어"); | |||
for(kor;kor>0;kor=kor-5) | |||
{c_kor[i]='*'; | |||
printf("%c",c_kor[i]); | |||
i++;} | |||
i=0; | |||
printf("\n수학"); | |||
for(mat;mat>0;mat=mat-5) | |||
{c_mat[i]='*'; | |||
printf("%c",c_mat[i]); | |||
i++;} | |||
i=0; | |||
printf("\n외국어"); | |||
for(eng;eng>0;eng=eng-5) | |||
{c_eng[i]='*'; | |||
printf("%c",c_eng[i]); | |||
i++;} | |||
i=0; | |||
printf("\n탐구"); | |||
for(tam;tam>0;tam=tam-5) | |||
{c_tam[i]='*'; | |||
printf("%c",c_tam[i]); | |||
i++;} | |||
i=0; | |||
printf("\n평균"); | |||
for(av;av>0;av=av-5) | |||
{c_av[i]='*'; | |||
printf("%c",c_av[i]); | |||
i++;} | |||
i=0; | |||
printf("\n"); | |||
} | |||
return 0; | |||
} | |||
함수는 일단은 포기! | |||
기프 실습시간에 npc에게 함수를 물어서 재창조 | |||
#include <stdio.h> | |||
void graph(int a,char c_kor[20]){ | |||
int i=0; | |||
for(i;i<(a+4)/5;i++){ | |||
c_kor[i]='*'; | |||
printf("%c",c_kor[i]); | |||
} | |||
return ; | |||
} | |||
int main() | |||
{ | |||
int i,kor,mat,eng,tam,av; | |||
char st[10],c_kor[20]={0,},c_mat[20]={0,},c_eng[20]={0,},c_tam[20]={0,},c_av[20]={0,}; | |||
for(i=0;i<3;i++){ | |||
printf("이름을 입력하세요\n"); | |||
scanf("%s",st); | |||
printf("국어,수학,외국어,탐구 성적을 입력하세요. ex>50,40,30,20\n"); | |||
scanf("%d,%d,%d,%d", &kor, &mat, &eng, &tam); | |||
printf(" 국어"); | |||
graph(kor,c_kor); | |||
printf("\n 수학"); | |||
graph(mat,c_mat); | |||
printf("\n외국어"); | |||
graph(eng,c_eng); | |||
printf("\n 탐구"); | |||
graph(tam,c_tam); | |||
printf("\n 평균"); | |||
av=(kor+mat+eng+tam)/4; | |||
graph(av,c_av); | |||
printf("\n"); | |||
} | |||
return 0; | |||
} | |||
---- | ---- | ||
[[새싹교실/2014]], [[새싹교실/2014/배반]] | [[새싹교실/2014]], [[새싹교실/2014/배반]] | ||
Latest revision as of 05:27, 17 April 2014
개요
참가자 : 원준연, 임기찬, 최필립, 홍성현 일시 : 14/04/10 15:00~16:15 --뭐가 이리 짧아--
내용
- 함수
- 함수의 개념
- 사용하는 이유
- 선언하는 법
- 주의사항
- 실습
과제
- --사골국물처럼 우려낸-- 성적 통계 프로그램.
- 입력받은 세 명의 학생들의 성적을 가로 그래프로 보여주는 프로그램.(세로 그래프로 구현한다면 중간고사 끝나는 날 밥을 사겠다!)
- 진짜요? - 최다인
- 과목은 언, 수, 외, 탐. 그리고 평균에 대한 그래프도 보여줄 것.
- 100점 만점.
- 5점당 * 한 개로, 100점이면 20개이며 5점당 1개씩 줄어든다.(즉, 5 단위로 올림처리할 것)
- 그래프를 그리는 과정은 반드시 함수로 추상화해 줄 것. 그 외에는 편한대로 함수로 해도 되고 안해도 됨.
- 되도록이면 배열도 써먹었으면 좋겠음.
- 출력예시
(입력 88/69/85/77) 아무개 언어 ****************** 수리 ************** 외국어 ***************** 탐구 **************** 평균 ****************
임기찬
#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 단위로 올림하라니까;;그거만 예외처리를 제외하면 거의 정답. 범위 제한이나 잘못된 입력에 대한 예외처리는 안했네. 설계가 아직 미숙한거는 어쩔 수 없지만 잘했어 잘했어 - 원준연
- 내일 ~~한국사 시간에~~ 고쳐보도록 노력해 볼게요.
최필립
- 사람은 한계에 몰렸을때 가장 큰 효율이 나오는 법이죠
#include <stdio.h>
void graph(int x,int y,int z);
int main()
{
int kor[3]={0,},eng[3]={0,},mat[3]={0,},i=0,count;
while(i<3)
{
printf("%d째 학생의 국어성적을 입력해주세요. : ",i+1);
scanf("%d",&kor[i]);
printf("%d째 학생의 영어성적을 입력해주세요. : ",i+1);
scanf("%d",&eng[i]);
printf("%d째 학생의 수학성적을 입력해주세요. : ",i+1);
scanf("%d",&mat[i]);
i++;
printf("\n");
}
for(count=0;count<3;count++)
{
printf("그래프\n");
graph(kor[count],eng[count],mat[count]);
printf("\n\n");
}
return 0;
}
void graph(int x,int y,int z)
{
int a,b,c,exa,exb,exc;
a=x/5;
b=y/5;
c=z/5;
exa=x;
exb=y;
exc=z;
printf("국어 : ");
while(a!=0)
{
printf("*");
a--;
}
if(exa%5==0) printf("\n");
else printf("*\n");
printf("영어 : ");
while(b!=0)
{
printf("*");
b--;
}
if(exb%5==0) printf("\n");
else printf("*\n");
printf("수학 : ");
while(c!=0)
{
printf("*");
c--;
}
if(exc%5==0)printf("\n");
else printf("*\n");
}
홍성현
원래 아이디어는 찔끔찔끔 써줘야 제맛
별 그리는거 if문으로 일일이 때려박기는 어려울터이니
a=a-5 이런식으로 해서 a<0이 되기 전까지 반복문으로 삥삥 돌리구
세로 그래프 출력하려면 자릿수 맞춰서 때려박아봐야징!
함수 이해를 제대로 못했어요.. -_..
#include <stdio.h>
int main()
{
int a,i=0,kor,mat,eng,tam,av;
char st[10],c_kor[20]={0,},c_mat[20]={0,},c_eng[20]={0,},c_tam[20]={0,},c_av[20]={0,};
for(a=3;a>0;a--){
printf("이름을 입력하세요\n");
scanf("%s",st);
printf("국어 성적을 입력하세요\n");
scanf_s("%d",&kor);
printf("수학 성적을 입력하세요\n");
scanf_s("%d",&mat);
printf("외국어 성적을 입력하세요\n");
scanf_s("%d",&eng);
printf("탐구 성적을 입력하세요\n");
scanf_s("%d",&tam);
av=(kor+mat+eng+tam)/4;
printf("%s",st);
printf("\n국어");
for(kor;kor>0;kor=kor-5)
{c_kor[i]='*';
printf("%c",c_kor[i]);
i++;}
i=0;
printf("\n수학");
for(mat;mat>0;mat=mat-5)
{c_mat[i]='*';
printf("%c",c_mat[i]);
i++;}
i=0;
printf("\n외국어");
for(eng;eng>0;eng=eng-5)
{c_eng[i]='*';
printf("%c",c_eng[i]);
i++;}
i=0;
printf("\n탐구");
for(tam;tam>0;tam=tam-5)
{c_tam[i]='*';
printf("%c",c_tam[i]);
i++;}
i=0;
printf("\n평균");
for(av;av>0;av=av-5)
{c_av[i]='*';
printf("%c",c_av[i]);
i++;}
i=0;
printf("\n");
}
return 0;
}
함수는 일단은 포기!
기프 실습시간에 npc에게 함수를 물어서 재창조
#include <stdio.h>
void graph(int a,char c_kor[20]){
int i=0;
for(i;i<(a+4)/5;i++){
c_kor[i]='*';
printf("%c",c_kor[i]);
}
return ;
}
int main()
{
int i,kor,mat,eng,tam,av;
char st[10],c_kor[20]={0,},c_mat[20]={0,},c_eng[20]={0,},c_tam[20]={0,},c_av[20]={0,};
for(i=0;i<3;i++){
printf("이름을 입력하세요\n");
scanf("%s",st);
printf("국어,수학,외국어,탐구 성적을 입력하세요. ex>50,40,30,20\n");
scanf("%d,%d,%d,%d", &kor, &mat, &eng, &tam);
printf(" 국어");
graph(kor,c_kor);
printf("\n 수학");
graph(mat,c_mat);
printf("\n외국어");
graph(eng,c_eng);
printf("\n 탐구");
graph(tam,c_tam);
printf("\n 평균");
av=(kor+mat+eng+tam)/4;
graph(av,c_av);
printf("\n");
}
return 0;
}