3.1. 내용 ¶
- 국,영,수를 받아서 합과 평균을 구하고, 평균이 80점 이상이면 합격, 미만이면 불합격을 출력하는 코드를 작성.
- 반복문을 통해 5회 반복하는 프로그램과 무한반복하는 프로그램을 작성.
- 결과물은 이 아래 자신의 항목을 만들어서 업로드.
3.2. 임기찬 ¶
- 문자 사용시 오류 방지를 위해
어쩔수없이ㅠㅠ 네이버의 도움을 받아fflush(stdin) 사용
- scanf 사용시 오류 방지를 위해
네이버의 도움을 받아#pragma warning(disable:4996) 사용
- 5번 반복하는 프로그램
#include <stdio.h>
#pragma warning(disable:4996)
int main()
{
int kor,eng,mat,tot,ave,i,j;
for(j = 0;j<5;j++) {
printf("당신의 국어 점수를 입력하십시오.(0~100): ");
i = scanf("%d",&kor);
while(kor < 0 || kor > 100){
if( i == 0){
printf("문자를 입력하지 말아 주십시오. \n");
printf("당신의 국어 점수를 입력하십시오(0~100): ");
fflush(stdin);
i = scanf("%d",&kor); }
else{
printf("1~100사이의 값을 입력하십시오. \n");
printf("당신의 국어 점수를 입력하십시오.(1~100): ");
i = scanf("%d",&kor); }}
printf("당신의 영어 점수를 입력하십시오(0~100): ");
i = scanf("%d",&eng);
while(eng < 0 || eng > 100){
if( i == 0){
printf("문자를 입력하지 말아 주십시오. \n");
printf("당신의 영어 점수를 입력하십시오(0~100): ");
fflush(stdin);
i = scanf("%d",&eng); }
else{
printf("1~100사이의 값을 입력하십시오. \n");
printf("당신의 영어 점수를 입력하십시오.(1~100): ");
i = scanf("%d",&eng); }}
printf("당신의 수학 점수를 입력하십시오(0~100): ");
i = scanf("%d",&mat);
while(mat < 0 || mat > 100){
if( i == 0){
printf("문자를 입력하지 말아 주십시오. \n");
printf("당신의 수학 점수를 입력하십시오(0~100): ");
fflush(stdin);
i = scanf("%d",&mat); }
else{
printf("1~100사이의 값을 입력하십시오. \n");
printf("당신의 수학 점수를 입력하십시오.(1~100): ");
i = scanf("%d",&mat); }}
tot = kor + eng + mat;
ave = tot / 3;
if ( ave >= 80){
printf("합격입니다. \n");}
else {
printf("불합격입니다. \n");}}
return 0;
}
- 무한 반복 프로그램
#include <stdio.h>
#pragma warning(disable:4996)
int main()
{
int kor,eng,mat,tot,ave,i,j;
while(1) {
printf("당신의 국어 점수를 입력하십시오.(0~100): ");
i = scanf("%d",&kor);
while(kor < 0 || kor > 100){
if( i == 0){
printf("문자를 입력하지 말아 주십시오. \n");
printf("당신의 국어 점수를 입력하십시오(0~100): ");
fflush(stdin);
i = scanf("%d",&kor); }
else{
printf("1~100사이의 값을 입력하십시오. \n");
printf("당신의 국어 점수를 입력하십시오.(1~100): ");
i = scanf("%d",&kor); }}
printf("당신의 영어 점수를 입력하십시오(0~100): ");
i = scanf("%d",&eng);
while(eng < 0 || eng > 100){
if( i == 0){
printf("문자를 입력하지 말아 주십시오. \n");
printf("당신의 영어 점수를 입력하십시오(0~100): ");
fflush(stdin);
i = scanf("%d",&eng); }
else{
printf("1~100사이의 값을 입력하십시오. \n");
printf("당신의 영어 점수를 입력하십시오.(1~100): ");
i = scanf("%d",&eng); }}
printf("당신의 수학 점수를 입력하십시오(0~100): ");
i = scanf("%d",&mat);
while(mat < 0 || mat > 100){
if( i == 0){
printf("문자를 입력하지 말아 주십시오. \n");
printf("당신의 수학 점수를 입력하십시오(0~100): ");
fflush(stdin);
i = scanf("%d",&mat); }
else{
printf("1~100사이의 값을 입력하십시오. \n");
printf("당신의 수학 점수를 입력하십시오.(1~100): ");
i = scanf("%d",&mat); }}
tot = kor + eng + mat;
ave = tot / 3;
if ( ave >= 80){
printf("합격입니다. \n");}
else {
printf("불합격입니다. \n");}}
return 0;
}
3.4. 홍성현 ¶
2014/3/23(일) 11:04 am
-문자 입력시 터지는 현상, 0~100 이외의 숫자 넣을 경우 고려해서 막을 방법을 재고려하겠습니다. -
-문자 입력시 터지는 현상, 0~100 이외의 숫자 넣을 경우 고려해서 막을 방법을 재고려하겠습니다. -
5회반복
#include <stdio.h>
int main()
{
int kor=0,eng=0,mat=0,ave=0,i=0;
for(i=0;i<5;i++)
{
printf("국어 성적 입력 :");
scanf("%d",&kor);
printf("영어 성적 입력 :");
scanf("%d",&eng);
printf("수학 성적 입력 :");
scanf("%d",&mat);
ave=(kor+eng+mat)/3;
printf("평균 :%d\n",ave);
if(ave>=80)
{printf("합격\n");
}
if(ave<80)
{printf("불합격\n");
}
}
return 0 ;
}
무한반복
#include <stdio.h>
int main()
{
int kor=0,eng=0,mat=0,ave=0,i=0;
for(i=0;i<5;i--)
{
printf("국어 성적 입력 :");
scanf("%d",&kor);
printf("영어 성적 입력 :");
scanf("%d",&eng);
printf("수학 성적 입력 :");
scanf("%d",&mat);
ave=(kor+eng+mat)/3;
printf("평균 :%d\n",ave);
if(ave>=80)
{printf("합격\n");
}
if(ave<80)
{printf("불합격\n");
}
}
return 0 ;
}
- 조건문에 if를 두번 쓰지 말고 else if로 하는게 더 좋습니다.










