U E D R , A S I H C RSS

새싹교실/2014/속도위반/0328 (rev. 1.30)

새싹교실/2014/속도위반/0328

예정

  • 과제에 대한 피드백, 코딩을 할 때의 몇 가지 주의점
  • 조건문, 반복문
  • 가능하다면 함수까지
  • 표준입출력에 대한 추가 설명
  • 연산자

진행사항

  • 태현 학우가 튜티로 합류하였습니다.
  • 참여자
    튜터 최다인 참석
    튜티 유재범 참석
    오영은 참석
    장우진 참석
    태현 참석
  • 버퍼에 대한 설명
  • 조건문, 반복문
  • 연산자

  • 다음 수업 : 4월 4일 금요일 오후 1시

과제

  • 성적을 점수로 입력받아 등급으로 출력하는 프로그램을 만드세요.
    • 성적을 입력받는 횟수는 10번으로, 10번을 입력받으면 프로그램이 종료되도록.
    • 등급 기준
      점수 등급
      80~100 A
      60~80 B
      40~60 C
      20~40 D
      0~20 F
    • for문과 if문을 쓴 것 하나
    • while문과 switch문을 쓴 것 하나
      • 미안합니다, 이거에 switch문을 쓰면 미친거지. 오영은 학우 수고했어요, 다른 학생들은 if문으로 바꿔서 해와도 됩니다.
  • 특별 과제! : 특별 과제를 가장 먼저 마친 한 명에게 음료수를...
    • 0~100을 벗어난 숫자를 받았을 때에는 입력받는 횟수에 추가하지 않고 다시 값을 받는다.

유재범

특별 과제 우선 선발(아래에 합쳐놨으나 혹시 모르니 살리겠습니다. 왠지 살리고 싶어요...)

#include<stdio.h>
#pragma warning(disable:4996)

int main(void)
{
	int count=0, grade=0, sum=0;;

	while(count!=10)
	{
		printf("점수를 입력하시오 : ");
		scanf("%d", &grade);
	
		if(grade>100)
		{
			count--;
		}
		else if(grade<0)
		{
			count--;
		}
		else
		{
			sum+=grade;}
		count++;
	}
	printf("점수의 총 합 : %d \n", sum);
	return 0;
}

일반선발 주 과제(자세한 사항은 생략)

#include <stdio.h>
#pragma warning(disable:4996)

int main(void)
{
	int grade=0, count1=0, count2=0, sum=0;
	while(count1!=10)
	{
		printf("당신의 점수를 입력하십시오 (점수를 알려는 드릴께): ");
		scanf("%d", &grade);

		if(grade<=20)
		{
			printf("F입니다. 당신은 실패자입니다.\n");
		}

		else if(grade<=40)
		{
			printf("D입니다. 가서 알바나 하세요.\n");
		}

		else if(grade<=60)
		{
			printf("C입니다. 교수님이 당신을 위해 친히 씨뿌리기를 하시네요.\n");
		}
		else if(grade<=80)
		{
			printf("B입니다. 당신은 예의가 있으시군요. 다음에는 더욱 더 정진해서 더 좋은 B를 받도록 하세요.\n");
		}

		else
		{
			printf("A입니다. 예의가 없네요. 교수님이 문제를 냈으면 하나 정도는 틀려주는게 예의에요.\n");
		}

		count1++;
	}

	while(count2!=10)
	{
		printf("점수를 입력하시오 : ");
		scanf("%d", &grade);
	
		if(grade>100)
		{
			count--;
		}
		else if(grade<0)
		{
			count--;
		}
		else
		{
			sum+=grade;}
		count++;
	}
	return 0;
}



다른 버전


#include <stdio.h>
#pragma warning(disable:4996)

int main(void)
{
	int grade=0, count;
	for(count=0; count!=10; count++)
	{
		printf("당신의 점수를 입력하시오 : ");
		scanf("%d", &grade);

		if(grade<=20)
		{
			printf("F입니다. 당신은 실패자입니다.\n");
		}

		else if(grade<=40)
		{
			printf("D입니다. 가서 알바나 하세요.\n");
		}

		else if(grade<=60)
		{
			printf("C입니다. 교수님이 당신을 위해 친히 씨뿌리기를 하시네요.\n");
		}
		else if(grade<=80)
		{
			printf("B입니다. 당신은 예의가 있으시군요. 다음에는 더욱 더 정진해서 더 좋은 B를 받도록 하세요.\n");
		}

		else
		{
			printf("A입니다. 예의가 없네요. 교수님이 문제를 냈으면 하나 정도는 틀려주는게 예의에요.\n");
		}
	}
	return 0;
}

오영은


1번째 코드 : if, for문
2번째 코드 : while, switch문
3번째 코드 : while, switch문
           100을 넣으면 에러가 나는 오류가 있습니다. 2번째 코드 참고.


#include<stdio.h>
int main()
{
	int score, grade;

	for(score=0;score<10;++score)
	{
	
		printf("당신의 점수는 몇 점입니까? : ");
		scanf("%d", &grade);
		if(grade>100)
		{score = score - 1;
		printf("fail이예요!^^\n");
		}
		else if(grade<0)
		{score = score - 1;
		printf("fail이예요!^^\n");
		}
		else if(grade>=80)
		printf("A\n");
		else if(grade>=60)
		printf("B\n");
		else if(grade>=40)
		printf("C\n");
		else if(grade>=20)
		printf("D\n");
		else if(grade>=0)
		printf("F\n");
	}
	return 0;
}


#include<stdio.h>
int main()
{
int grade, score;
score = 0;

    while(score < 10)
	{
		printf("점수를 입력하지 않으면 유혈사태는 일어나지 않을 것입니다, : ");
	    scanf("%d", &grade);

		switch(grade)
		{
		case 0 :case 1 :case 2 :case 3 :case 4 :case 5 :case 6 :case 7 :case 8 :case 9 :
		case 10 :case 11 :case 12 :case 13 :case 14 :case 15 :case 16 :case 17 :case 18 :case 19 :
			printf("F\n");
			break;
        case 20 :case 21 :case 22 :case 23 :case 24 :case 25 :case 26 :case 27 :case 28 :case 29 :
		case 30 :case 31 :case 32 :case 33 :case 34 :case 35 :case 36 :case 37 :case 38 :case 39 :
			  printf("D\n");
			break;
		case 40 :case 41 :case 42 :case 43 :case 44 :case 45 :case 46 :case 47 :case 48 :case 49 :
	    case 50 :case 51 :case 52 :case 53 :case 54 :case 55 :case 56 :case 57 :case 58 :case 59 :
				printf("C\n");
			break;
		case 60 :case 61 :case 62 :case 63 :case 64 :case 65 :case 66 :case 67 :case 68  :case 69 :
		case 70 :case 71 :case 72 :case 73 :case 74 :case 75 :case 76 :case 77 :case 78 :case 79 :
			    printf("B\n");
			break;
		case 80 :case 81 :case 82 :case 83 :case 84 :case 85 :case 86 :case 87 :case 88 :case 89 :
		case 90 :case 91 :case 92 :case 93 :case 94 :case 95 :case 96 :case 97 :case 98 :case 99 :case 100 :
				printf("A\n");
			break;
		default : 
			{
				printf("ERROR!\n");
				score = score - 1;
			}

		}





#include<stdio.h>
int main()
{
int grade, score;
score = 0;

    while(score < 10)
	{
		printf("점수를 입력하지 않으면 유혈사태는 일어나지 않을 것입니다, : ");
	    scanf("%d", &grade);
		grade = grade/20;

		switch(grade)
		{
		case 0 : printf("F\n");
			break;
        case 1 : printf("D\n");
			break;
		case 2 : printf("C\n");
			break;
		case 3 : printf("B\n");
			break;
		case 4 : printf("A\n");
			break;
		default : 
			{
				printf("ERROR!\n");
				score = score - 1;
			}

		}
	
	score++;
	
	
	}
	
	return 0;
}


  • ㅋㅋㅋㅋㅋ 영은아 내가 코드는 아직 안봤는데 점수를 입력하지 않으면 유혈사태는 일어나지 않으면 점수 입력하지 말란소리자낰ㅋㅋ ...쓸데없는데 태클걸어봤음ㅋㅋㅋ - 최다인

장우진

#include <stdio.h>

int main ()
{
	int a, grade=0;

	
	for(a=0;a<10;++a){
		printf("당신의 점수를 입력해 주세요 :");
	    scanf("%d",&grade);
		if(100<grade)
		{
			printf("다시\n");
			a=a-1;}
		else if(grade<0)
		{
			printf("다시\n");
			a=a-1;}
		else if(80<grade)
			printf("당신의 등급은 A입니다\n");
		else if(60<grade)
			printf("당신의 등급은 B입니다\n");
		else if(40<grade)
			printf("당신의 등급은 C입니다\n");
		else if(20<grade)
			printf("당신의 등급은 D입니다\n");
		else if(0<=grade)
			printf("당신의 등급은 F입니다\n");
		
	}
	return 0;
}


#include<stdio.h>
int main()
{
int grade, score;
score = 0;

    while(score < 10)
	{
		printf("점수를 입력하지 않으면 유혈사태는 일어나지 않을 것입니다, : ");
	    scanf("%d", &grade);

		 if(grade>100)
		 { printf("다시\n");
		 score = score-1;}

		 else if(grade<0)
	     { printf("다시\n");
		 score = score-1;}

		 else if(grade>80)
			printf("A\n");
			
		 else if(grade>60)
			  printf("B\n");
		
		 else if(grade>40)
			  printf("C\n");

	         else if(grade>20)
			  printf("D\n");

		 else if(grade>=0)
			  printf("F\n");
         
		 score++;
	
		}
	
	
	return 0;
}

문태현


최다인

  • 참고 코드입니다.

#include <stdio.h>
#include <Windows.h>
#pragma warning(disable:4996)

int main()
{
	int score, i;
	char grade;

	for(i = 0; i < 10; i++){
		printf("점수를 입력해주세요 : ");
		scanf("%d",&score);

		if(score < 0 || score > 100){
			printf("제대로 된 점수값을 입력해주세요.\n");
			i--;
			continue;
		}

		score/=20;
		if(score == 5)
			score--;
		if(score == 0)
			grade = 'F';
		else
			grade = 'E' - score;

		printf("당신의 등급은 %c 등급입니다.\n", grade);
	}

	printf("점수 입력을 완료하였습니다.\n");
	system("pause");
}

후기

  • 준비가 좀 미흡해서 정신없이 수업이 진행된 것 같아 미안합니다. 다음 주에는 함수를 나갈 예정인데, 좀 더 잘 이해시키도록 준비해오도록 할게요. - 최다인
  • 개인적으로 switch문 못써서 아쉽긴 한데 다음 수업에 그거 먼저 알려주셨으면 합니다. - 유재범
    • 뭘 알려달라는 거지? switch-case에 대한 설명은 했고 과제를 내가 병신같이 내준 부분이라면 이 과제에 switch문을 쓰는 것 자체가 별로 좋지 않은 생각이었다는 - 내가 병신이었다는 - 얘기밖에 못해주겠다... - 최다인

도위반
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:29:51
Processing time 0.0351 sec