525초

|



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

'etc > Mine Finding' 카테고리의 다른 글

525초  (0) 2013.08.08
Trackback 0 And Comment 0

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

130806.2일차

|

#include <stdio.h>


/*
void main() {
 short a = 32768;
 printf("short : %d\n", a);

 int b=120L; // 숫자뒤에 L은 long 형 정수, F은 실수
 printf("int : %d\n", b);

 char c='월';
 printf("char : %c\n", c);

 float d=5.5;
 printf("float : %f\n", d);

 char e[] = "ABC";
 printf("string : %s\n", e);

 unsigned short f=50000;  // 0~65535
 printf("unsigned : %d\n ", f);
}
*/

 


/*

void main()
{
 int a = 190;
 double b = 43.77;
 char c = 'A';

 printf ("a : %d\n", a);
 printf ("b : %lf\n", b);
 printf ("c : %c\n", c);
 
 printf ("\n출력자릿수\n");
 printf ("a :%7d\n", a);  // 전체를 7자리 잡는다  _ _ _ _  1 9 0 (오른쪽 정렬)
 printf ("a :%-7d\n", a); // 전체를 7자리 잡는다  1 9 0 _ _ _ _  (왼쪽 정렬)
 printf ("a :%07d\n", a); // 0000190
 printf ("a :%-07d\n\n", a); // 뒤에는 0을 안채움

 printf ("b :%7.2lf\n", b); // 소수점 포함 7 자리 중 2자리가 소수점 아래 _ _ 4 3 . 7 7
 printf ("b :%0.2lf\n", b); // 0.2, 0은 강제력 없지만 2는 강제력이 있다.
 printf ("b :%.1lf\n", b); // 앞자리는 신경안쓰고 소숫점은 반올림해서 표기
 printf ("b :%.lf\n", b); // 소수점은 안찍지만 반올림함

 

 

 

 // 진수 변수
 printf("\n\n 진수변환\n") ;
 printf("8진수 : %o\n", a) ;
 printf("16진수 : %x\n", a) ;

 

 

 

 // 형변환

 printf("\n형변환\n");
 int num1 = 5.8; // 강제 형변환(소수점 버림)
 printf ("num1 : %d\n", num1);
 // printf ("num1 : %d\n", (int) 5.5 ); //강제 형변환
 
 double num2 = 5; // 자동 형변환
 printf ("num2 : %lf\n", num2);
 // printf ("num1 : %d\n", (double) 5 ); //강제 형변환

 printf("\n%d\n%.2f\n%c \n",a,b,c);
}


*/

 

 

 

 

/*

 

 

연산자 우선순위

 

1. 최우선 연산자
  ()  []  .  ->  ;;
  []   배열
  .     구조체
  ->   포인터
  ;;    클래스

 

 

2. 단항 연산자
  + -                  부호
  new  delete     동적 할당★★★ (메모리 관리, 포인터 학습후 배움)
  ++ --               증감 연산자(변수랑만 사용해야한다. 5++ (x), a++(o) )
                        ++ : 1 증가, -- : 1감소
  !                     부정 연산자(논리 not)
                        0은 거짓, 나머지는 참
                        !3=0, !0=1
  ~                   1의 보수 연산자(bit not), (절대값 구할때 씀)
  *                    포인터★
  &                    주소 연산자★
  sizeof()           메모리의 크기를 알려주는 연산자
  형변환

 

 

3. 산술 연산자
  * /
  %   나머지 연산 (double로 나눌 수 없다)
  + -

 

 

4. 쉬프트 연산자
  a<<n    왼쪽 혹은 오른쪽으로 비트를 민다
  a>>n    부호비트 불변
              왼쪽으로 shift하면 a*(2^n) , 오른쪽으로 shift하면 a/(2^n)
              a<<5 : a*(2^5) 

 

 

5. 관계 연산자
  >     <    >=    <=
  ==     !=

 

 

6. 논리 연산자
  &  |  ^    비트 논리 연산자(숫자를 비트로 쪼개서 비트끼리 계산)   
               (int a=20) & (int a=12) → (0001 0100) & (0000 1100) = 0000 0100 (4)
               ( & : AND, | : OR, ^ : XOR[둘이 다르면 1 같으면 0] )
  && || (shift won 키)   참거짓 판별

 

 

7. 삼항 연산자
  조건 ?
  참  :
  거짓 ;

 

 

8. 대입 연산자
  순수    =
  산술    +=  (a=a+1, a+=1, a++) 연산하고 넣어라, 기존값 보존 안됨
            -=  
            *=  
            /=  
            %=
  비트 논리 &= ^=  |=
  쉬프트   <<= >>=

 

 

9. 콤마 연산자
  ,

 */

 

 

 

 

 

//  증감 연산자
/*
void main()
{
 int a=10, b=10;
 b=++a;  //선증가
 printf("a : %d\t b : %d\n", a,b);

 b=a++;  //후증가(대입후 증가)
 printf("a : %d\t b : %d\n\n", a,b);


 a = b = 10; // 10을 b에 넣고 b를 a에 넣는다
 printf("a : %d\n", ++a); // 증가후 출력
 printf("b : %d\n", b++); // 출력후 증가
}
*/

 

 

 

 


// sizeof

/*
void main()
{
 printf("int : %d\n", sizeof(200) );  // byte 크기 알려줌
 printf("char : %d\n", sizeof('A') ); // 'A'와 65는 같지만 다른byte 수로 저장 가능
 printf("int : %d\n\n", sizeof(65) );

 printf("string : %d\n", sizeof("A") );
 printf("long : %d\n", sizeof(200L) );
 printf("short : %d\n\n", sizeof( short(200) ) );

 printf("string : %d\n", sizeof("ABC") ); // 3+1 byte (null 포함)
 printf("string : %d\n\n", sizeof("대한민국") ); // 8+1 byte

 printf("%d\n", sizeof(5/2) );
 printf("%d\n", sizeof(5/2.) );
 printf("%d\n", sizeof('A'+1) );
 printf("%d\n", sizeof(5 + 5.5f) );
}

*/

 

 

 

 

 


// 쉬프트 연산자

/*
void main()
{
 printf("%d\n", 5<<2); //double 사용 불가
 printf("%d\n", 5>>2);
}
*/

 

 

 

// 비트 논리 연산자
/*
void main()
{
 int a=20;
 int b=12;
 printf("a&b : %d\n", a&b);
 printf("a|b : %d\n", a|b);
 printf("a^b : %d\n\n", a^b);

 printf("&& : %d\n", 0&&0); // 전체비트 비교 다 같아야 참
 printf("&& : %d\n", 0&&1);
 printf("&& : %d\n", 1&&0);
 printf("&& : %d\n\n", 100&&100);

 printf("|| : %d\n", 0||0);
 printf("|| : %d\n", 0||1);
 printf("|| : %d\n", 1||0);
 printf("|| : %d\n\n", 1||1);

 
 bool c=true;
 printf("bool : %d\n", c); // 1
 bool d=false;
 printf("bool : %d\n", d); // 0

}
*/

/*
void main()
{
 int a=10;
 printf("+= : %d\n", a+=10);  // a=a+10, 20=10+10
 printf("-= : %d\n", a-=10);  // a=a-10, 10=20-10
 printf("*= : %d\n", a*=10);  // a=a*10, 100=10*10
 printf("/= : %d\n", a/=10);  // a=a/10, 10=100/10
 printf("%= : %d\n", a%=10);

 // a&=0 은 모든 비트를 0으로 초기화 하고 싶을때
}
*/

 

 

/*
         표준 입출력 함수


    | 문자   | 문자열  | 숫자 문자 문자열
 -------------------------------------------------------------------------------
 입력 | getchar()  | gets()   | scanf() 다 입력받는다
    | getch()   ★ |      | cin >>
    | getche()  |      |
 -------------------------------------------------------------------------------
 출력 | putchar()  | puts() ★ | printf()  다 출력한다
    |      |      | cout <<

*/

 

 

 

 

// putchar, puts
/*
void main ()
{
 puts("putchar 예제");
 printf("%c\n", 'A');
 putchar('A\n'); //거꾸로 메모리 스택을 잡아서 \n 만 인식해서 아무것도 안나옴
 putchar('A'); putchar('\n');
 putchar('ABC'); putchar('\n'); putchar('\n'); // C만 나옴
 
 puts("puts 예제");
 printf("%s\n","한글"); //아래와 같음
 puts("한글");
 puts("ABC"+1); // n만큼 이동해서 출력
}
*/

 


/*
 scanf()
 실행 시 데이터를 입력
 변수 앞에는 반드시 &(주소연산자)를 붙인다.
 단 배열이나 포인터인 경우에는 생략 가능하다.
 제어문자(\n  \t  \a  \b  \r)을 쓸 수 없다.
 데이터 구분으로는 space(공백)이나 enter를 사용한다.
 공백이 포함된 문자열은 입력이 불가능 하다.
 실수는 입력시 소수이하 자리수는 지정할 수 없다.

*/

 

 

 

/*
void main()
{
 int a; // 방 선언
 double b;
 
 printf("정수 : ");     // 사용자에게 친절한 설명
 scanf("%d", &a);  // 절대 역슬래시(\) 불가, 띄어쓰지도 않는다, 제어문자 쓰지 않는다
                           // 오직 변환 문자만 사용.
                           // & 빼면 메모리쪽 오류남
                           // 왠만하면 입력은 한번에 하나씩
 printf("실수 : ");
 scanf("%lf", &b); // 입력은 소숫점 지정 못함
 printf("a : %d\n", a);
 printf("b : %lf\n", b);
}

*/

 

 

 


//숙제

 

void main()
{
 double num=25.77;
 puts("숙제 1 : 소숫점 둘째자리 버리기");
 printf("num : %.1lf\n\n\n", double(int(num*10))/10);  // 25.7이 나오도록
 

 puts("숙제 2 : 성적 평균 구하기\n");
 puts("성적을 입력하여 주십시오");
 int a,b,c;
 printf("\n국어점수 : ");
 scanf("%d",&a);
 printf("영어점수 : ");
 scanf("%d",&b);
 printf("수학점수 : ");
 scanf("%d",&c);

 printf("\n국어 : %d\n", a);
 printf("영어 : %d\n", b);
 printf("수학 : %d\n", c);
 printf("총점 : %d\n", a+b+c);
 printf("평균 : %5.2lf\n\n", double(a+b+c)/3);

}


*/

 

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

'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 | ··· | 6 | 7 | 8 | 9 | 10 | next