프로그래밍/C,C++

C 연습 예제(정수, 데이터타입, if, while)

gameObject 2023. 6. 1. 17:31
728x90

정수 계산하기

#include <iostream>
#include <stdio.h> 

int threeCal(int x, int y, int z); //x+y*z
int secondCal(int x, int y, int z);//(x-y)*(y+z)*(z%x)

//정수 3개를 입력받아서 x+y*z의 결과를 출력하는 프로그램
int main(){
    int x,y,z;

    printf("세 숫자를 입력해주세요.");
    scanf("%d %d %d", &x, &y, &z);

    printf("입력하신 세 숫자의 %d + %d * %d의 값은 %d 입니다.\n", x,y,z,threeCal(x,y,z));
    printf("변형된식 (%d-%d)*(%d+%d)*(%d%%%d)의 값은 %d입니다.",x,y,y,z,z,x,secondCal(x,y,z));
}//main함수 종료
//x+y*z 함수
int threeCal(int x, int y, int z){
    int cal = x + y * z;
    return cal;
}
//(x-y)*(y+z)*(z%x)의 계산 함수
int secondCal(int x, int y, int z){
    int cal = (x-y)*(y+z)*(z%x);
    return cal;
}

 

 

 

데이터타입

#include <iostream>
#include <stdio.h> 

//sizeof()함수로 자료형 크기 알아보기
int main(){
    
    //정수형 데이터타입
    char charValue = 'A'; //문자 하나를 저장하기 위한 데이터 타입
    short shortValue = 10; //int 보다 작은 수를 저장하기 위한 데이터 타입
    int intValue = 100; //가장 만만한 수를 저장하기 위한 데이터 타입
    long longValue = 200; // int가 커져서 이제 잘 안쓰는 데이터 타입
    long long longLongValue = 1000; //int보다 큰 수를 저장하기 위한 데이터 타입

    //실수형 데이터타입
    float floatValue = 10.1; //가장 만만한 실수를 저장하기 위한 데이터 타입
    double doubleValue = 100.1; //float보다 큰 실수를 저장하기 위한 데이터 타입
    long double longDoubleValue = 200.1; //double보다 큰 실수를 저장하기 위한 데이터 타입

    printf("char의 크기 %d \n", sizeof(charValue));
    printf("short의 크기 %d \n", sizeof(shortValue));
    printf("int의 크기 %d \n", sizeof(intValue));
    printf("long의 크기 %d \n", sizeof(longValue));
    printf("longlong의 크기 %d \n\n", sizeof(longLongValue));

    printf("float의 크기 %d \n", sizeof(floatValue));
    printf("double의 크기 %d \n", sizeof(doubleValue));
    printf("long double의 크기 %d \n", sizeof(longDoubleValue));
}

 

 

원의 반지름 구하기

- 함수를 사용할것, 전방선언 해볼것

- 원의 반지름은 정수

#include <iostream>
#include <stdio.h> 

float circleArea(int radius,float PI);
// 원의 반지름을 입력받아서 원의 넓이를 출력하는 프로그램 작성해보기
// 함수를 사용할것, 전방선언 해보기
// 원의 반지름은 정수
int main(){

    const float PI = 3.141592f;//끝에 f를 달게 되면 float로 확인되며, f를 달지 않으면 double로 나온다.
    printf("원의 반지름을 입력해주세요 : ");
    int radius;
    scanf("%d",&radius);

    printf("원의 반지름은 %d입니다. 원의 넓이는 %.2f입니다. ",radius,circleArea(radius,PI));
}

float circleArea(int radius, float PI){
    float Area = radius * radius * PI;
    return Area;
}

특수문자 판별

캐릭터 하나를 입력받아서 해당 문자가 특수문자인지 아닌지 판별하기

1안

#include <iostream>
#include <stdio.h> 

int trans(int a); //참, 거짓 변환 함수

int main(){

    printf("문자를 입력하세요.\n");
    char charValue;
    scanf("%c",&charValue);

    // bool isSpecial = (charValue<'A')||('Z'<charValue && charValue < 'a')||('z'<charValue);

    bool isSpecial = ('!'<= charValue && charValue <= '/')||(':'<=charValue && charValue <= '@')||('['<=charValue && charValue < 'a')||('{'<=charValue && charValue <= '~');

    printf("입력한 값은 특수문자인가?\n");
    trans(isSpecial);
    
    return 0;

}//main

int trans(int a){
    int b;
    b = (a == 1)?printf("참\n"):printf("거짓\n");
    return 0;
}

2안

#include <iostream>
#include <stdio.h> 

int main(){

    printf("문자를 입력하세요.\n");
    char charValue;
    scanf("%c",&charValue);

    // bool isSpecial = (charValue<'A')||('Z'<charValue && charValue < 'a')||('z'<charValue);

    bool isSpecial = ('!'<= charValue && charValue <= '/')||(':'<=charValue && charValue <= '@')||('['<=charValue && charValue < 'a')||('{'<=charValue && charValue <= '~');

    printf("입력한 값은 특수문자인가?\n");
    (isSpecial == 1)?printf("참\n"):printf("거짓\n");
    
    return 0;

}//main

3안

범위를 잡는 방법을 !(not)을 써서도 아스키코드에서 범위를 잡는다면 똑같이 계산할 수 있다.

 

4안

첫 if를 배울 수 있었다. 삼항연산자와 if는 비슷한것으로 느꼈다.

#include <iostream>
#include <stdio.h> 

int main(){

    // {}중괄호 영역을 스코프라고 한다.
    char someAlphabet;
    scanf("%c",&someAlphabet);
    
    bool isBigAlphabet = ('A' <= someAlphabet && someAlphabet <= 'Z');
    bool isSmallAlphabet = ('a' <= someAlphabet && someAlphabet <= 'z');
    bool isNumber = ('0' <= someAlphabet && someAlphabet <= '9');

    if(isBigAlphabet){
        printf("영문 대문자 입니다.\n");
        //if문은 조건식이 참이면 스코프 안의 내용을 진행하고, 거짓이면 건너뛴다.
    }else if(isSmallAlphabet){
        printf("영문 소문자 입니다.\n");

    }else if(isNumber){
        printf("숫자 입니다.\n");

    }else{
        printf("잘 모르겠습니다.\n");

    }
    //위의 조건식에서 참이 아닌, 다른 모든 경우 스코프 안의 내용을 진행한다.

}

 

반복문

1) 기초1

#include <iostream>
#include <stdio.h> 

//반복문
int main(){

    int loopCount = 5;
    while(1<=loopCount){
    printf("Hello world\n");
    loopCount -= 1;
    }//loopCount while
}

2) 기초2

#include <iostream>
#include <stdio.h> 

//반복문
int main(){
    int number = 1;

    while(number<=10){
        printf("숫자 %d\n",number);
        number += 1;
    }
}

 

3) 별로 정사각형 만들기

#include <iostream>
#include <stdio.h> 

//유저에게 사이즈를 입력받아서 *로 정사각형 출력하기
int main(){

    int number,number2,number3;
    
    printf("정사각형 공장입니다.\n");
    printf("3 ~ 10사이 숫자를 입력해주세요:");
    
    //입력받기
    scanf("%d",&number);
    
    //3~10 사이의 숫자 입력하지 않을시 함수 종료
    if(number < 3){
        printf("다시 시작하세요\n");
        number = 0;
    }else if(number > 10){
        printf("다시 시작하세요\n");
        number = 0;
    }
    
    //정사각형을 만들기 위해 입력값을 다른변수에 대입
    number2 = number;
    number3 = number;

    while(1 <= number){
        while(1<=number2){
            printf("* ");
            number2 -= 1;
        }
        if(number2 < 1){
            number2 = number3;
        }
        printf("\n");
        number -= 1;
    }
}
728x90