////////////////////////////////////////////////////////////////////////////////////

//문자열을 두개 입력 받고 두개의 문자열이 같은지 검사하는 프로그램
//같습니다, 같지 않습니다 출력


소스보기
int ex6(){
    char pwd1[30],pwd2[30];
    cout << "새 암호를 입력 :" << endl;
    cin >> pwd1;
    cout << "다시 한번 입력 :" << endl;
    cin >> pwd2;

    if(strcmp(pwd1,pwd2)==0)//문자열 비교함수 strcmp
        cout << "같습니다" << endl;
    else
        cout << "같지 않습니다" << endl;
    return 0;
}


//////////////////////////////////////////////////////////////////////////////
//yes가 입력될 때까지 종료하지 않는 프로그램 cin.getline()함수 사용


소스보기
int ex7(){
    char s[100];
    while(true){
        cout << "종료하고 싶으면 yes를 입력 " << endl;
        cin.getline(s,100,'\n'); // (변수,사이즈,만나면 끝낼 문자)
        if(strcmp(s,"yes")==0)
            break;
    }
    cout << "종료합니다" << endl;
    return 0;
}


////////////////////////////////////////////////////////////////////////////
//한 라인에 ;으로 5개의 이름을 구분하여 입력받아
//각이름을 끊어내어 화면에 출력하고 가장 긴 이름을 판별


소스보기
int ex8(){
    char name[100],longest[100];
    int length=0;
    cout << "5명의 이름을 ';'으로 구분하여 입력하세요" << endl;
    cout << ">>";
    for(int i=1; i<6; i++){
        cin.getline(name,100,';');
        cout << i << " : " << name << endl; //i는 번호 name은 이름 출력
        if(length < strlen(name)){ //length 초기값이 0, strlen()함수를 이용 name배열과 비교
            length = strlen(name); // 가장 긴 값이 length에 저장됨
            strcpy(longest,name); // strcpy() 함수를 이용해 name을 longest에 복사
        }
    }
    cout << "가장 긴 이름은 : " << longest << endl;
    return 0;
}


//////////////////////////////////////////////////////////////////////////
//이름 주소 나이를 입력받아 다시 출력하는 프로그램


소스보기
int ex9(){
    char name[20] ,address[50];
    int age;
    cout << "이름은? ";
    cin.getline(name,20,'\n');   
    cout << "주소는? ";
    cin.getline(address,50,'\n');   
    cout << "나이는? ";
    cin >> age;

    cout << name << " ," << address << " ," << age << "세" << endl;

    return 0;
}


///////////////////////////////////////////////////////////////////////
//문자열을 입력받고 다음과 같이 출력
//h
//...
//hello


소스보기
int ex10(){
    char str[50];
    cout << "문자열 입력>>";
    cin.getline(str,50);
    int length = strlen(str);

    for(int i=1; i<=length; i++){ //문자열 길이만큼 반복
        for(int j=0; j<i; j++){ //문자열 1씩 증가
            cout << str[j];
        }
        cout << endl;
    }
    return 0;
}



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

명품 C++ 프로그래밍 실습문제 1-5  (0) 2014.11.04
명품 C++ 프로그래밍 챕터2 오픈챌린지  (0) 2014.11.04

///////////////////////////////////////////////////////////////////////////////////

//실습문제 1

//1-100까지의 정수를 한줄에 10개씩 출력

소스 보기

int ex1(){

for(int i=1; i<=100; i++){

cout << i << '\t';

if(i%10==0)

cout << endl;

}

return 0;

}


///////////////////////////////////////////////////////////////////////////////////

//실습문제 2

//구구단 출력 (세로 정렬)

// 1x1=1 2x1=2 3 4 5

// 1x2=2 2x2=4

소스 보기

int ex2(){

for(int i=1; i<=9; i++){

for(int j=1; j<=9; j++){

cout << j << "*" << i << "=" << j*i << '\t';

}

cout << '\n';

}

return 0;

}


///////////////////////////////////////////////////////////////////////////////////

//실습 문제 3

//키보드로 두개의 정수 입력 받은 후 큰수 출력

소스 보기

int ex3(){

int a,b;

cout << "두수를 입력 : ";

cin >> a >> b;

cout << "큰수 : ";

if(a>b)

cout << a << endl;

else if(a<b)

cout << b << endl;

else 

cout << "값이 같습니다" <<endl;

return 0;

}

///////////////////////////////////////////////////////////////////////////////////

//실습문제 4

//5개의 실수값을 입력 받아 제일 큰 수를 화면에 출력하시오.

소스 보기

double biggest(double x[], int n){//큰 수를 변별하기 위한 함수 

double r;

r = x[0];

for(int i=0; i<n; i++)

if(r < x[i]) r = x[i];

return r;

}

int ex4(){

double a[5];

cout << "5개의 실수 입력 : ";

for(int i=0; i<5; i++)

cin >> a[i];

cout << "제일 큰 수 = " << biggest(a,5) << endl;

return 0;

}


///////////////////////////////////////////////////////////////////////////////////

//실습문제 5

//엔터키가 입력될 때가지 문자들을 읽고 입력된 문자에 x의 개수를 화면에 출력

//(100자 미만)

소스 보기

int ex5(){

char c[100]; 

int cnt = 0; // x의 개수를 카운트하기 위한 변수

cout << "문자들을 입력(100개 미만)" <<endl;

cin.getline(c ,100 ,'\n'); //enter키가 입력될때까지 문자 입력 받기


int i=0;//c[i]를 색인하기 위한 변수

while(true){

//문자열 마지막 다음에는 \0가 있기 때문 문자열이 끝난것이기 때문에 빠져나옴

if(c[i] == '\0') break;

//char c에 x가 있으면 cnt에 1씩 증가

if(c[i] == 'x') cnt++;

i++;//

}

cout << "x의 개수는 : " << cnt << endl;

return 0;

}


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

명품 C++ 프로그래밍 실습문제 6-10  (0) 2014.11.05
명품 C++ 프로그래밍 챕터2 오픈챌린지  (0) 2014.11.04
오픈 챌린지

두 사람이 가위바위보 하는 게임 만들기

이름은 사또, 아랑으로 한다

먼저 사또를 출력 하고 사또로부터 문자열을 입력받고 

아랑을 출력 아랑으로부터 문자열 입력 받는다

누가 이겼는지 판단


int main(){//오픈 챌린지 문제
cout << "가위,바위,보 중에 하나만 문자열로 입력 " << endl;
string s,t; //s는 사또 t는 아랑
cout << "사또 : ";
cin >> s;
cout << "아랑 : ";
cin >> t;
if(s=="가위" && t=="보" || s=="바위" && t=="가위" || s=="보" && t=="바위")
cout << "사또가 이겼습니다" << endl;
else if(t=="가위" && s=="보" || t=="바위" && s=="가위" || t=="보" && s=="바위")
cout << "아랑이 이겼습니다" << endl;
else if(t=="가위" && s=="가위" || t=="바위" && s=="바위" || t=="보" && s=="보")
cout << "비겼습니다" << endl;
return 0;
}


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

명품 C++ 프로그래밍 실습문제 6-10  (0) 2014.11.05
명품 C++ 프로그래밍 실습문제 1-5  (0) 2014.11.04

http://cocos2dx.tistory.com/1

-for-

사용 예)

for(초기식 ; 조건식 ; 증감식)

출력될 명령;


for(int i=0 ; i<5; i++) // i는 0부터 시작해서 5보다 작을때까지 1씩 증가하면서 반복

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


출력 화면 


0

1

2

3

4


이런식으로 출력될것이다


-while-

사용 예)

while(조건){

출력될 명령;

}


int i=1,sum=0;

while(i<=100){     // 1부터 100까지 반복

sum+=i ;        // sum=sum+i와 동일

i++;             // i값이 1증가

}

printf("1부터 100까지의 합 : %d\n",sum) 


for문과 비슷하나 초기식은 while문 이전에 있으며 

증감식은 루프 내부에 있고 조건식은 while문 안에 위치해 있다



-do ~ while-

사용 예)

do{

출력될 명령;

}while(조건){

출력될 명령;

}


int i=1,sum=0;

do{

sum+=i;

i++;

}while(i<=100);{

printf("1부터 100까지의 합 : %d\n",sum);

}

while문과 거의 유사하며 최소한 한번은 실행이 된다.

한가지 유의점은 while문이 끝나고 꼭 세미콜론(;)이 들어가야 한다.


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

얼핏 다 비슷해보이지만 

반복횟수가 정해져 있을경우에는 for문을

반복횟수가 가변적이고 특정 값을 입력 등 조건이 언제 발생할지 모르는 경우에는 while문을

값을 입력받아야만 반복문을 빠져나올 것인지 계속할 것인지 판단할 경우, 즉 조건을 보기전

최소한 입력을 받아야 하는 경우엔 do~while문이 적합하다.

또한, 반복문은 서로를 대체할수 있어서 각 반복문으로 변환 하는것이 가능하다. 

물론, 안되는 경우도 있다.



'Programing > C' 카테고리의 다른 글

조건문 (if~else ,switch case)  (0) 2014.10.18
배열, 구조체, 포인터  (0) 2014.10.17
printf, scanf 외의 입출력 함수들  (0) 2014.10.17


-if~else - 


사용 예 1)

if(조건식){ //이 조건이 맞다면

조건식이 참이면 실행될 문장;  //실행

}


예 2)

if(조건식){

조건식이 참이면 실행될 문장;

}else{

조건식이 거짓일 경우 실행될 문장;

}


예 3)

if(조건식1){

조건식이 참이면 실행될 문장;

}else if(조건식2){

조건식2가 참이면 실행될 문장;

}

else{

조건식1,2가 거짓인 나머지 경우 실행될 문장;

}


또한 중첩된 if문을 아래와 같이 작성 할 수도 있고 횟수에 제한은 없다.

if(조건식1){

A

if(조건식2){

B;

}

}

이 경우에는 조건식1,2가 전부 참이여만 B가 출력될 것이다.

중첩된 if문을 쓸수 있다는 것을 보여주기 위한 아주 간단한 예를 든것이다.

또한 실행문이 하나일 경우에는 {}중가로를 생략할 수 있지만 실행문이 두개 이상일 경우에는 반드시 {}중가로로 묶어야 한다. 




-switch case - 


사용 예)

switch(변수){                                 //변수값이 

case 1  : 실행될 문장;  break;    //1이라면 실행

case 2  : 실행될 문장;  break;   //2라면 실행

....

default : 실행될 문장; break;     //그외의 경우에 실행

}

여기서 유의할 점은 각 case 값마다 break;를 써주지 않으면 변수 값이 1일 경우에도

끝까지 처리를 하기 때문에 break;를 써서 강제로 빠져나오게 해줘야 한다.

물론 일부러 break;를 안 써주는 경우도 있다.


switch를 이용한 커서 이동 예)






'Programing > C' 카테고리의 다른 글

반복문 (for, while, do~ while)  (0) 2014.10.18
배열, 구조체, 포인터  (0) 2014.10.17
printf, scanf 외의 입출력 함수들  (0) 2014.10.17

배열(array) - 동일한 타입의 데이터의 집합.

ex) int array[10]; // 정수형 변수 10개의 데이터를 가지는 배열 array 선언

이런식으로 10개의 메모리 공간을 확보하게 되는데 

참조 인덱스 번호는 0번지 부터 라는것에 유의   

 array[0]

...중략 

[9] 



구조체(struct) - 서로 다른 타입의 데이터의 집합.

ex) struct{

char name[8];

int age, score;

} student;

name 

age 

score 

   10byte                  4                   4

ex)

student.age=17;

printf("이름 : %s", student.name);

위의 예를 보면 구조체를 참조할 때는 .(점)을 사용하는것을 알수 있다.



포인터(pointer)  - 변수의 메모리 공간 주소를 가리키는 변수.

  포인터는 특정 메모리 주소값을 저장, 그 주소에 할당된 값을 읽어 온다.

cf) *p : p가 가리키는 번지의 값을 읽어라.

&p : p에 기억되어 있는 메모리 주소값을 읽어라.


ex) void main(){

int num = 123; // num을 123으로 초기화

int *pn;          //포인터 pn 선언


pn = &num;    //num의 주소를 pn에 대입

print("num의 값 : %d\n",*pi);   //포인터 pi가 가리키는 번지의 값을 읽어옴

}






'Programing > C' 카테고리의 다른 글

반복문 (for, while, do~ while)  (0) 2014.10.18
조건문 (if~else ,switch case)  (0) 2014.10.18
printf, scanf 외의 입출력 함수들  (0) 2014.10.17

clrscr(); - 화면을 지우고 커서를 좌상단으로 이동시킨다.



gotoxy(x,y); - x,y의 좌표값으로 이동한다 (출력의 길이에 따라 40,12가 중앙이 아닐수도 있음)




puts("문자"); - 문자열만 출력할때 사용, printf에 비해 간편하고 빠르다.



gets(변수); -  scanf와 비슷하나 scanf와는 달리 공백(space) 입력도 받을 수가 있다.

*참고 : scanf로 문자열을 입력 받을 시에는 &를 쓰지 않는다

ex) scanf("%s",&str); (X)

     scanf("%s",str); (O)



putch(); - 문자 하나만 출력 한다.



getch(); - 문자 하나만 입력 받는다.



delay(n); - n만큼의 시간 지연, 1/1000초 단위.



exit(0); - 프로그램 종료 (문제가 없을시엔 0을, 문제가 있을시엔 1을 리턴하는게 보통이라고 한다.)



kbhit(); 혹은 _kbhit(); - 키 버퍼에 값을 확인하여 키가 눌렸나 안눌렸나 판단이 가능하다. 

   값이 있으면 참을 반환.


간단한 사용의 예










 



'Programing > C' 카테고리의 다른 글

반복문 (for, while, do~ while)  (0) 2014.10.18
조건문 (if~else ,switch case)  (0) 2014.10.18
배열, 구조체, 포인터  (0) 2014.10.17

+ Recent posts