130807.3일차

|

#include <stdio.h>

#include <conio.h>


/*

표준 입출력 함수



| 문자 | 문자열 | 숫자 문자 문자열

-------------------------------------------------------------------------------

입력                 |      getchar() | gets() | scanf() 다 입력받는다

| getch()  ★ | | cin >>

| getche() | |

-------------------------------------------------------------------------------

출력                 | putchar() | puts() | printf()  다 출력한다

| |          | cout <<


*/







//   3항 연산자


/*

void main()

{

int a;

int b=10, c=5;


printf("정수 입력 : " );

scanf("%d", &a);


a%2 == 0 ? printf("짝수\n") : printf("홀수\n");  

//printf("%s\n", a%2==0 ? "짝수" : "홀수"); // 이거도 가능

// ==(조건연산자)

// ? if

// : (콜론) 앞은 참 뒤는 거짓

}

*/




// 3항 연산 예제


/* 문자하나를 입력 받는다

입력 받은 문자가 M이거나 m 이면 "남자"를 출력하고

아니면 "여자"라고 출력한다.

*/


/*

void main()

{

char a;

printf("성별 : ");

scanf("%c",&a);

printf("%s\n", a==('M'|'m') ? "여자" : "남자");

//puts( a=='M' || a=='m' ? "남자" : "여자");

}

*/



// gets

/*

void main()

{

char name[12];

int price;


printf("가격 : ");

scanf("%d", &price);

printf("이름 : ");


//scanf("%s", &name);


fflush(stdin);


gets(name); // buffer에 enter가 있어서 gets는 enter를 가져감(입력과 동시에 enter)

// buffer를 비움으로써 enter를 없애줄 수 있다.(fflush 사용)

// fflush(stdin)를 입력 받는 부분들 사이에 입력해준다

// %s 안붙여도 된다

// 문자열을 저장할 수 있는 배열을 지정해 주어야한다

// 띄어쓰기도 입력으로 인식

// scanf는 공백(space)를 입력하면 완료로 생각(데이터로 생각 안함)

printf("%s의 가격은 %d원 입니다. \n", name, price);


}

*/



/*

void main()

{

char ch;

printf("문자 : ");

//scanf("%c", &ch); // 한문자 방에 10개를 입력하면 9개는 버퍼에 대기

//ch = getchar(); // 입력 받은 데이터를 return

//ch = getch(); // conio.h 필요

// 문자 하나만 입력받음

   //입력 받은게 안보이고 바로 넘어간다(비밀번호에 유용)

ch=getche();

printf("ch : %c\n", ch);


}


*/



// 비밀번호 입력


/*

void main ()

{

char a, b, c, d;

printf("비밀번호 : [    ]\b\b\b\b\b"); // 커서 한칸씩 뒤로

a = getch(), printf("*\a"); // 입력 음(sound)

b = getch(), printf("*\a");

c = getch(), printf("*\a");

d = getch(), printf("*\a");

printf("\n비밀번호 :  %c%c%c%c\n", a,b,c,d);

}

*/



/*

제어문

조건문 - if(조건) 참;

- if(조건) 참;

else 거짓;

- if(조건) 참;

else if(조건) 참;

.....

else 거짓;

- switch ~ case


반복문 - for               참일때만 실행하고 거짓일땐 실행 안함

- while

- do ~ while


*/




/*

void main()

{

int a;

printf("정수 : ");

scanf("%d", &a);


if(a>5)

{

printf("크다\n"); // 참

}

else 

{

printf("작다\n"); // 거짓

}

}

*/




// 정수하나 입력

// 2의 배수 이면서 3의 배수면 "공배수" 출력

// 아니면 "아니다" 출력



/*

void main()

{

int a;

scanf("%d",&a);


if (  (a%2==0) && (a%3==0) ) // && 두개 붙이면 왼쪽값 오른쪽값의 논리값인참 거짓만 비교함

// if ( a%2 == a%3 ) // 나머지가 같아도 참됨 13

{

puts("공배수");

}


else 

{

puts("아니다");

}


}


*/





// 문자 M이나 m이 입력되면 "남자"를 출력

// 아니면 "여자" 출력


/*

void main()

{

char a;

printf("성별 : ");

scanf("%c",&a);


if ( (a=='M') || (a=='m') ) 

{

puts("남자");

}


else 

{

puts("여자");

}


}

*/




/*

void main() 

{

int a;

printf("점수 : ");

scanf("%d", &a);

//if ( a >= 90 ) puts("A학점"); // 90 <= a <= 100 이런거 못함 ( 90 <= a && a<=100 ) 가능

 // 변수는 왼쪽으로 

//if ( a >= 80 ) puts("B학점");

//if ( a >= 70 ) puts("C학점");

//if ( a >= 60 ) puts("D학점");

//if ( a <  60 ) puts("F학점");   // 점수가 높으면 여러 학점이 나옴


//if ( a <= 100 && a >= 90 ) puts("A학점");

//if ( a < 90 && a >= 80 ) puts("B학점");

  //if ( a < 80 && a >= 70 ) puts("C학점");

  //if ( a < 70 && a >= 60 ) puts("D학점");

//if ( a < 60 ) puts("B학점"); // 95점 일경우 첫번째 if 문에서 끝나야 하는데 

                                    // 나머지 4번의 필요없는 if 문을 불필요하게 지나간다

 

if ( a >= 90 ) puts("A학점"); // 첫 if와 첫 else는 짝

else if ( a >= 80 ) puts("B학점"); // 조건은 처음부터 끝까지 sequence를 유지해야함

else if ( a >= 70 ) puts("C학점");

else if ( a >= 60 ) puts("D학점");

else puts("F학점"); // 위에서 만족하면 중간에 결과 return

 // 마지막 else 는 나머지의 의미

 // 끝에 [  else if ( a < 60 )  puts("F학점")   ]도 가능 

*/






//  예제


// 정수 세개를 입력 받는다.

// else if 비교해서 가장 큰 수 하나만 출력


/*

void main()

{

int a, b, c,d;


printf("정수 1 : ");

scanf("%d", &a);

printf("정수 2 : ");

scanf("%d", &b);

printf("정수 3 : ");

scanf("%d", &c);

printf("정수 4 : ");

scanf("%d", &d);


// 숫자 3개

if ( a >= b ) 

{

if ( a >= c ) printf("큰수 : %d\n",a);

else printf("큰수 : %d\n",c);

}

else 

{

if ( b >= c ) printf("큰수 : %d\n",b);

else printf("큰수 : %d\n",c);

}


// 숫자 4개

if ( a>b && a>c && a>d ) printf("큰수 : %d\n",a);

else if ( b>c && b>d ) printf("큰수 : %d\n",b);

else if ( c>d ) printf("큰수 : %d\n",c);

else printf("큰수 : %d\n",d);

}

  

*/



//switch case : 가독성이 좋다

// 1이면 one 출력

// 2이면 two 출력

// 3이면 threee 출력

// 나머지는 number 출력



/*

void main()

{

int a;

printf("정수 : ");

scanf("%d",&a);

switch(a) // 괄호 안에는 제약이 있다.

// 정수, 문자, 정수로 떨어지는 식만 올 수 있다. 

{

case 1 : printf("one\n"); break; // case 옆에는 정수만 온다.

case 2 : printf("two\n"); break; 

case 3 : printf("three\n"); break; 

default : printf("number\n"); 

}

}

*/





// 예제


// 90~99 A

// 80~89 B

// 70~79 C


/*

void main()

{

int a;


printf("점수 : ");

scanf("%d", &a);

switch(a)

{

case 100 : printf("A학점\n"); break;

}

if ( a <= 100 && a >= 0 )

{

switch(a/10)

{

case 10 : // 흘러 내려주자

case 9 : printf("A학점\n"); break;

case 8 : printf("B학점\n"); break;

case 7 : printf("C학점\n"); break;

case 6 : printf("D학점\n"); break;

default : printf("F학점\n");

}

}

else printf("잘못입력\n");

}

 */





// 예제


// 연도를 입력 받는다.

// 해당 연도는 무슨 띠인지 출력

// 서기 1년 닭띠


/*

void main()

{

int a;


printf("출생년도 : ");

scanf("%d", &a);


switch(a%12)

{

case 0 : puts("원숭이띠"); break;

case 1 : puts("닭띠"); break;

case 2 : puts("개띠"); break;

case 3 : puts("돼지띠"); break;

case 4 : puts("쥐띠"); break;

case 5 : puts("소띠"); break;

case 6 : puts("호랑이띠"); break;

case 7 : puts("토끼띠"); break;

case 8 : puts("용띠"); break;

case 9 : puts("뱀띠"); break;

case 10 : puts("말띠"); break;

case 11 : puts("양띠"); break;

default : puts("잘못 입력 하셨습니다.");

}

}

*/




// 반복문 for



/*

void main()

{

int i;


//for ( i=0; i<3; i++) // 초기값; 조건, 증감값

//  세미콜론인 이유는 각각이 실행문이기 때문

//for ( i=1; i<11; i++) // 1~10

//for ( i=10; i>0; i--) // 10~1

for (i=2 ; i<=10 ; i+=2) // 2 4 6 8 10

{

printf("i : %d\n", i);

}

}

*/




/* 숙제 1


삼항 연산 예제

국어 영어 수학 점수를 입력 받는다.

평균이 70점 이상이면 "합격" 아니면 "불합격" 이라고 출력한다.


입력받은 점수중 하나라도 0~100 점 사이가 아니면 

"잘못입력" 이라고 출력한다.


★if문 쓰지 말고 3항 연산으로 풀기




숙제 2


계산기 만들기


정수 두개 입력받고

연산자 한개(+ - * / %) 입력 받아서

두 수를 해당 연산자로 연산한 결과 값을 출력한다


2 5 +

2+5=7



나누기는 소수점 2자리 까지 출력

(+ - * / %) 이외의 연산자를 입력하면 "잘못입력" 출력


switch case 문제

*/


void main()

{

// 숙제 1

printf("숙제 1\n\n"); 

puts("국어, 영어, 수학 점수를 입력하여 주십시오\n");


int kor, eng, mat;

double avg;


printf("국어 : "); scanf("%d", &kor);

printf("영어 : "); scanf("%d", &eng);

printf("수학 : "); scanf("%d", &mat);

avg=(kor+eng+mat)/3;

printf("\n\n");


(kor >= 0) & (eng >= 0) & (mat >= 0) & (kor <= 100) & (eng <= 100) & (mat <= 100)  ?  ( avg >= 70 ? printf("합격 - 평균 : %.2lf\n",avg) : printf("불합격 - 평균 : %.2lf\n",avg) )  : printf("잘못 입력하셨습니다\n");



// 숙제 2

printf("\n\n\n\n숙제 2\n\n"); 

puts("두 정수와 연산자[+ - * / %]중 하나를 입력하여 주십시요");

char s;

int n1, n2;


printf("첫번째 정수 : "); scanf("%d", &n1);

printf("두번째 정수 : "); scanf("%d", &n2);

printf("연산자 : "); fflush(stdin); scanf("%c", &s);

printf("\n\n결과값 : ");

switch (s)

{

case 37 : printf("%d\n",n1%n2); break;

case 42 : printf("%d\n",n1*n2); break;

case 43 : printf("%d\n",n1+n2); break;

case 45 : printf("%d\n",n1-n2); break;

case 47 : printf("%.2lf\n",n1/double(n2)); break;

        default : printf("연산자를 잘못 입력 하셨습니다\n");

}

printf("\n\n");

}



저작자 표시 비영리 변경 금지
신고

'Study > C, C++' 카테고리의 다른 글

130812.6일차  (0) 2013.08.19
130809.5일차  (0) 2013.08.19
130808.4일차  (0) 2013.08.08
130807.3일차  (0) 2013.08.07
130806.2일차  (0) 2013.08.06
130805.1일차  (0) 2013.08.05
Trackback 0 And Comment 0
prev | 1 | ··· | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | next