06. 간단한 프로그램 만들기 1

2025. 8. 5. 12:38·C/Assignment

간단한 프로그램 함수로 구현하기 1

 

사용자에게 숫자 2개를 입력받고, 사칙연산 기호(+, -, *, /, %, //) 를 입력받으면, 그 연산 결과를 출력하라.

​

참고) 예제01, 예제02, 예제03, 예제42

#include <stdio.h>

void cal(int num1,int num2,char ch)
{
    int add;
    int sub;
    int mul;
    double div;
    int rem;
    if (ch == '+')
    {
        add = num1 + num2;
        printf("%d\n",add);
    }
    else if (ch == '-')
    {
        sub = num1 - num2;
        printf("%d\n",sub);
    }
    else if (ch == '*')
    {
        mul = num1 * num2;
        printf("%d\n",mul);
    }
    else if (ch == '/')
    {
        div = (double)num1 / num2;
        printf("%.1f\n",div);
    }
    else if (ch == '%')
    {
        rem = num1 % num2;
        printf("%d\n",rem);
    }
}
int main(void)
{
    int num1, num2;
    char ch;

    while(1)
    {
        printf("정수 : ");
        scanf("%d",&num1);
        printf("정수 : ");
        scanf("%d",&num2);
        printf("기호(0을 입력하면 종료합니다.) : ");
        scanf(" %c",&ch);
        if(ch != '0')
        cal(num1,num2,ch);
        else
        break;
    }

    return 0;
}

>

복습 및 주의 부분

1. %c로 문자를 입력받을 때, 중복출력 문제

발생 이유 : 이유는 scanf()로 입력을 받은 후 남은 개행문자\n을 다음 입력인 "%c" 에서 받아버리기 때문임

해결 방법 : 따라서 "%c" 를 " %c"로 공백을 추가하여 변경하여 개행문자를 건너뛰도록 조치하였음

2. 입력 받은 건 "문자" 이므로, if(ch != "0")와 같이 쓰면 문자열을 비교하는 것이 돼서 if(ch != '0')을 써야 함

​


간단한 프로그램 함수로 구현하기 2

 

사용자가 사각형의 넓이, 원의 넓이, 삼각형의 넓이, 원의 둘레를 선택하고 자동 계산되도록 구현하라.

그리고 계산에 필요한 값을 입력받고, 그 결과를 출력하는 프로그램을 구현하라.

 

참고) 예제04, 예제05, 과제02

 

사각형의 넓이 = 가로의 길이 × 세로의 길이

원의 넓이 = 반지름 × 반지름 × 원주율

삼각형의 넓이 = (1/2) 밑변 × 높이

#include <stdio.h>

void squ(int wid,int len)
{
    int squ_ext = wid*len;
    printf("사각형의 넓이 : %d\n",squ_ext);
}
void cir(double r)
{
    double cir_ext = r*r*3.14;
    printf("원의 넓이 : %.2f\n",cir_ext);
}
void tri(double wid,double len)
{
    double tri_ext = wid*len*0.5;
    printf("삼각형의 넓이 : %.2f\n",tri_ext);
}
void cir2(double r)
{
    double cir_area = 2*r*3.14;
    printf("원의 둘레 : %.2f\n",cir_area);
}
int main(void)
{
    while (1)
    {
        char num1;
        printf("0. 종료 1. 사각형의 넓이 2. 원의 넓이 3.삼각형의 넓이 4. 원의 둘레\n ");
        printf("입력 : ");
        scanf(" %c",&num1);

        
        if (num1 == '1')
        {
            int wid;
            int len;
            printf("가로 : ");
            scanf("%d",&wid);
            printf("세로 : ");
            scanf("%d",&len);
            squ(wid,len);
        }
        else if (num1 == '2')
        {
            double r;
            printf("반지름 : ");
            scanf("%lf",&r);
            cir(r);
        }
        else if (num1 == '3')
        {
            double wid;
            double len;
            printf("밑변 : ");
            scanf("%lf",&wid);
            printf("높이 : ");
            scanf("%lf",&len);
            tri(wid,len);
        }
        else if (num1 == '4')
        {
            double r;
            printf("반지름 : ");
            scanf("%lf",&r);
            cir2(r);
        }
        else if (num1 == '0')
        break;
    }
    
    return 0;
}

간단한 프로그램 함수로 구현하기 3

 

사용자가 숫자를 원하는 개수만큼 입력한다.

출력 결과는, 가장 큰 수와 가장 작은수, 홀수와 짝수인지, 양수, 0, 음수의 판결 결과를 출력하는 프로그램을 구현하라

사용자가 입력하는 숫자와 숫자 사이를 구분하는 방법은 개발자가 선택하세요.

 

참고) 예제09, 예제10, 예제11, 예제12, 예제13

#include <stdio.h>
int main(void)
{
    printf("몇 개의 숫자를 입력하시겠습니까?\n입력 : ");
    int num_deter;
    scanf("%d",&num_deter);
    int ary[num_deter];
    int i;
    for(i=0;i<num_deter;i++)
    {
        int num;
        printf("(음수,0,양수)정수 입력 : ");
        scanf("%d",&num);
        ary[i] = num;
    }

    int max = ary[0];
    for(i=0;i<num_deter;i++)
    {
        if(max<=ary[i])
        max = ary[i];
    }
    printf("가장 큰 수 : %d\n",max);
    
    int min = ary[0];
    for(i=0;i<num_deter;i++)
    {
        if(min>=ary[i])
        min = ary[i];
    }
    printf("가장 작은 수 : %d\n",min);

    printf("홀수 : ");
    for(i=0;i<num_deter;i++)
    {
        if(ary[i]%2 != 0)
        printf("%d ",ary[i]);
    }

    printf("\n");

    printf("짝수 : ");
    for(i=0;i<num_deter;i++)
    {
        if(ary[i]%2 == 0)
        printf("%d ",ary[i]);
    }

    printf("\n");

    for(i=0;i<num_deter;i++)
    {
        if(ary[i] == 0)
        printf("%d번째 입력한 수가 0 입니다!\n",i+1);
    }
    
    printf("양수 : ");
    for(i=0;i<num_deter;i++)
    {
        if(ary[i]>0)
        printf("%d ",ary[i]);
    }
    
    printf("\n");

    printf("음수 : ");
    for(i=0;i<num_deter;i++)
    {
        if(ary[i]<0)
        printf("%d ",ary[i]);
    }

    return 0;
}

간단한 프로그램 함수로 구현하기 4

세 수를 입력받아, 가장 큰 숫자와 가장 작은 숫자 사이의 수의 합을 계산되도록 구현하라.

모든 방법은 개발자가 선택하세요.

 

참고) 예제18, 예제19, 예제20, 예제21, 예제22, 예제23, 예제24

#include<stdio.h>
int main(void)
{
    int i;
    int ary[3];
    for(i=0;i<3;i++)
    {
        int num;
        printf("%d번째 정수 : ",i+1);
        scanf("%d",&num);
        ary[i] = num;
    }
    
    int max = ary[0]; //가장 큰 수
    for(i=0;i<3;i++)
    {
        if (max<=ary[i])
        max = ary[i];
    }
    
    int min = ary[0]; //가장 작은 수
    for(i=0;i<3;i++)
    {
        if (min>=ary[i])
        min = ary[i];
    }
    
    int sum = max + min; //합 출력
    printf("%d",sum);
}

간단한 프로그램 함수로 구현하기 5

사용자가 도형 모양을 숫자로 선택하고, 해당 번호 도형을 출력하도록 프로그램을 구현하라

1.

#include<stdio.h>
int main(void)
{
    int ary[6][6];
    for(int i=0;i<6;i++)
    {
        for(int j=0;j<i+1;j++)
        {
            printf("%c",ary[i][j] = '*');
        }
        printf("\n");
    }
}

2.

#include<stdio.h>
int main(void)
{
    int ary[6][6];
    for(int i=0;i<6;i++)
    {
        for(int j=0;j<5-i;j++)
        {
            printf("%c",ary[i][j] = ' ');
        }
        for(int j=6;j>5-i;j--)
        {
            printf("%c",ary[i][j] = '*');
        }
        printf("\n");
    }
}

3.

#include<stdio.h>
int main(void)
{
    int ary[6][6];
    for(int i=0;i<6;i++)
    {
        for(int j=0;j<6-i;j++)
        {
            printf("%c",ary[i][j] = '*');
        }
        printf("\n");
    }
}

4.

#include<stdio.h>
int main(void)
{
    int ary[6][6];
    for(int i=0;i<6;i++)
    {
        for(int j=0;j<i;j++)
        {
            printf("%c",ary[i][j] = ' ');
        }
        for(int j=0;j<6-i;j++)
        {
            printf("%c",ary[i][j] = '*');
        }
        printf("\n");
    }
}

5.

#include<stdio.h>
int main(void)
{
    int ary[6][11];
    for(int i=0;i<6;i++)
    {
        for(int j=0;j<5-i;j++)
        {
            printf("%c",ary[i][j] = ' ');
        }
        for(int j=0;j<i+1;j++)
        {
            printf("%c",ary[i][j] = '*');
        }
        for(int j=7;j<7+i;j++)
        {
            printf("%c",ary[i][j] = '*');
        }
        printf("\n");
    }
}

6.

#include<stdio.h>
int main(void)
{
    int ary[6][11];
    for(int i=0;i<6;i++)
    {
        for(int j=0;j<i;j++)
        {
            printf("%c",ary[i][j] = ' ');
        }
        for(int j=0;j<6-i;j++)
        {
            printf("%c",ary[i][j] = '*');
        }
        for(int j=7;j<12-i;j++)
        {
            printf("%c",ary[i][j] = '*');
        }
        printf("\n");
    }
}

7.

#include<stdio.h>
int main(void)
{
    int ary[6][11];
    for(int i=0;i<3;i++)
    {
        for(int j=0;j<5-i;j++)
        {
            printf("%c",ary[i][j] = ' ');
        }
        for(int j=0;j<i+1;j++)
        {
            printf("%c",ary[i][j] = '*');
        }
        for(int j=7;j<7+i;j++)
        {
            printf("%c",ary[i][j] = '*');
        }
        printf("\n");
    }
    for(int i=0;i<3;i++)
    {
        for(int j=0;j<i+3;j++)
        {
            printf("%c",ary[i][j] = ' ');
        }
        for(int j=4;j<7-i;j++)
        {
            printf("%c",ary[i][j] = '*');
        }
        for(int j=7;j<9-i;j++)
        {
            printf("%c",ary[i][j] = '*');
        }
        printf("\n");
    }
}

간단한 프로그램 함수로 구현하기 6

 

삼각형 모양 출력하기: 사용자로부터 정수 하나를 입력받아 다음 실행 예와 같은 도형을 출력하는 프로그램을 장석하라.

첫번째 줄에는 '*'문자가 1개,

두번째 줄에는 '*'문자가 2개,

세번째 줄에는 '*'문자가 3개,

이와 같이 매 줄마다 하나씩 늘어가면ㅅ '*' 문자가 출력된다.

단, '*'문자가 출력되기 전에 공백 문자(들)이 먼저 출력된다.

 

@실습 및 프로그래밍 절차

- 사용자로부터 1개의 정수값을 입력받고, 이 값이 0 이하인 경우 프로그램은 종료한다.

- 반복문을 사용하여 입력값 만큼 반복하여 각 라인을 출력한다.

- 각 라인 또한 반복문을 사용하여 공백 문자를 먼저 출력하고, 또 다시 반복문을 사요하여 '*'문자를 출력한다.'

#include<stdio.h>
int main(void)
{
    while(1)
    {
        int num;
        printf("정수(0 이하를 입력하면 종료합니다...) : ");
        scanf("%d",&num);
        int ary[num][num];
        
        if(num > 0)
        {
            for(int i=0;i<num;i++)
            {
                for(int j=0;j<num-1-i;j++)
                {
                    printf("%c",ary[i][j] = ' ');
                }
                for(int j=0;j<i+1;j++)
                {
                    printf("%c",ary[i][j] = '*');
                }
                for(int j=0;j<i;j++)
                {
                    printf("%c",ary[i][j] = '*');
                }
                printf("\n");
            }
        }
        else if (num <= 0)
        break;
    }
}

간단한 프로그램 함수로 구현하기 7

빈 다이아몬드 모양 출력하기:

사용자로부터 정수 하나를 입력받아 실행 예와 같은 도형을 출력하는 프로그램을 작성하라.

가운데 다이아몬드 모양이 있고 그 외의 칸에는 'X'문자가 출력되어야 한다.

이때 가로와 세로의 모양이 같다.

입력값이 짝수일 경우에는 1을 빼서 홀수 로 만든 후 도형을 출력하면 된다.

입력값이 0 이하인 경우 프로그램은 종료된다.

 

@참고 사항

- 입력값이 9인 경우,

첫 번째 라인에는 4개의 'X' 다음에 공백 그 다음에 다시 4개의 'X'가 출력된다.

두 번째 라인에는 3개의 'X' 다음에 공백이 3개가 출력된 후 그 다음에 다시 3개의 'X'가 온다.

세 번째 라인에는 2개의 'X' 로부터 시작하고

네 번째 라인에는 1개의 'X' 로 시작한다.

 

@실습 및 프로그래밍 절차

- 반복문을 사용하여 'X' 문자를 어떻게 출력할 것인지 문제를 분석한다.

- 사용자로부터 1개의 정수값을 입력받고, 이 값이 0 이하인 경우 프로그램은 종료한다.

- 입력값이 짝수인 경우 1을 빼서 홀수로 만든다.

- 참고 사항 및 문제 분석 내용을 토대로 반복문을 사용하여 주어진 패턴의 모양을 출력한다.

#include<stdio.h>
int main(void)
{
    while(1)
    {
        int num;
        printf("정수 : ");
        scanf("%d",&num);
        if (num<=0)
        break;
        else
        {
            if (num%2 != 0)
            num = num + 1;
            num = num / 2;

            for(int i=0;i<num;i++)
            {
                for(int j=1;j<num-i;j++)
                {
                    printf("X");
                }
                for(int j=1;j<2+2*i;j++)
                {
                    printf(" ");
                }
                for(int j=1;j<num-i;j++)
                {
                    printf("X");
                }
                printf("\n");
            }
            for(int i=0;i<num;i++)
            {
                for(int j=0;j<i;j++)
                {
                    printf("X");
                }
                for(int j=0;j<(num*2)-1-2*i;j++)
                {
                    printf(" ");
                }
                for(int j=0;j<i;j++)
                {
                    printf("X");
                }
                printf("\n");
            }
        }
    }  
}

간단한 프로그램 함수로 구현하기 8

꽉찬 다이아몬드 만들기

#include<stdio.h>
int main(void)
{
    while(1)
    {
        int num;
        printf("정수(0을 입력하면 종료합니다...) : ");
        scanf("%d",&num);
        if (num<=0)
        break;
        else
        {
            int num1;
            int num2;
            if (num%2 != 0)
            {
                num1 = (num+1)/2;
                num2 = num/2;
            }
            else
            {
                num1 = num/2;
                num2 = (num-1)/2;
            } 

            for(int i=0;i<num1;i++)
            {
                for(int j=1;j<num1-i;j++)
                {
                    printf(" ");
                }
                for(int j=1;j<2+i;j++)
                {
                    printf("X");
                }
                for(int j=1;j<1+i;j++)
                {
                    printf("X");
                }
                printf("\n");
            }
            for(int i=0;i<num2;i++)
            {
                for(int j=1;j<2+i;j++)
                {
                    printf(" ");
                }
                for(int j=1;j<num1-i;j++)
                {
                    printf("X");
                }
                for(int j=1;j<num2-i;j++)
                {
                    printf("X");
                }
                printf("\n");
            }
        }
    }  
}

​간단한 프로그램 함수로 구현하기 9

나비 넥타이 만들기

 

#include<stdio.h>
int main(void)
{
    while(1)
    {
        int num;
        printf("정수(0을 입력하면 종료합니다...) : ");
        scanf("%d",&num);
        if (num<=0)
        break;
        else
        {
            int num1;
            int num2;
            if (num%2 != 0)
            {
                num1 = (num+1)/2;
                num2 = num/2;
            }
            else
            {
                num1 = num/2;
                num2 = (num-1)/2;
            } 

            for(int i=0;i<num2;i++)
            {
                for(int j=1;j<2+i;j++)
                {
                    printf("X");
                }
                for(int j=1;j<num-1-2*i;j++)
                {
                    printf(" ");
                }
                for(int j=1;j<2+i;j++)
                {
                    printf("X");
                }
                printf("\n");
            }
            for(int i=0;i<num;i++)
            {
                printf("X");
            }
            printf("\n");
            for(int i=0;i<num2;i++)
            {
                for(int j=0;j<num2-i;j++)
                {
                    printf("X");
                }
                for(int j=0;j<1+2*i;j++)
                {
                    printf(" ");
                }
                for(int j=0;j<num2-i;j++)
                {
                    printf("X");
                }
                printf("\n");
            }
        }
    }  
}

간단한 프로그램 함수로 구현하기 10

화살표 만들기

(입력 없이 그냥 모양만 비슷하게 해도 됨, 출력 정렬 사용 안됨)

#include<stdio.h>
int main(void)
{
    for(int i=0;i<5;i++)
    {
        for(int j=0;j<8-i;j++)
        {
            printf("   ");
        }
        for(int j=0;j<1+2*i;j++)
        {
            printf(" * ");
        }
        printf("\n");
        printf("\n");
    }
    for(int i=0;i<5;i++)
    {
        for(int j=0;j<6;j++)
        {
            printf("   ");
        }
        for(int j=0;j<5;j++)
        {
            printf(" * ");
        }
        printf("\n");
        printf("\n");
    }
}

간단한 프로그램 함수로 구현하기 11

트리 만들기

(입력 없이 그냥 모양만 비슷하게 해도 됨, 출력 정렬 사용 안됨)

#include<stdio.h>
int main(void)
{
    for(int i=0;i<3;i++)
    {
        for(int j=0;j<8-i;j++)
        {
            printf("   ");
        }
        for(int j=0;j<1+2*i;j++)
        {
            printf(" * ");
        }
        printf("\n");
        printf("\n");
    }
    for(int i=0;i<3;i++)
    {
        for(int j=0;j<7-i;j++)
        {
            printf("   ");
        }
        for(int j=0;j<3+2*i;j++)
        {
            printf(" * ");
        }
        printf("\n");
        printf("\n");
    }
    for(int i=0;i<3;i++)
    {
        for(int j=0;j<6-i;j++)
        {
            printf("   ");
        }
        for(int j=0;j<5+2*i;j++)
        {
            printf(" * ");
        }
        printf("\n");
        printf("\n");
    }
    for(int i=0;i<3;i++)
    {
        for(int j=0;j<6;j++)
        {
            printf("   ");
        }
        for(int j=0;j<5;j++)
        {
            printf(" * ");
        }
        printf("\n");
        printf("\n");
    }
}

간단한 프로그램 함수로 구현하기 12

튤립 만들기

#include<stdio.h>
int main(void)
{
    for(int i=0;i<4;i++)
    {
        for(int j=0;j<4-i;j++)
        {
            printf(" ");
        }
        for(int j=4;j>3-i;j--)
        {
            printf("*");
        }
        for(int j=3;j>3-i;j--)
        {
            printf("*");
        }
        for(int j=0;j<7-2*i;j++)
        {
            printf(" ");
        }
        for(int j=4;j>3-i;j--)
        {
            printf("*");
        }
        for(int j=3;j>3-i;j--)
        {
            printf("*");
        }
        for(int j=0;j<7-2*i;j++)
        {
            printf(" ");
        }
        for(int j=4;j>3-i;j--)
        {
            printf("*");
        }
        for(int j=3;j>3-i;j--)
        {
            printf("*");
        }
        printf("\n");
    }
    for(int i=0;i<13;i++)
    {
        for(int j=0;j<i;j++)
        {
            printf(" ");
        }
        for(int j=0;j<25-2*i;j++)
        {
            printf("*");
        }
        printf("\n");
    }
    for(int i=0;i<13;i++)
    {
        printf("            *");
        printf("\n");
    }
}

간단한 프로그램 함수로 구현하기 13

풍차 만들기

(입력 없이 그냥 모양만 비슷하게 해도 됨, 출력 정렬 사용 안됨, 돌아가는거 아님)

#include<stdio.h>
int main(void)
{
    for(int i=0;i<10;i++)
    {
        for(int j=0;j<i+1;j++)
        {
            printf(" * ");
        }
        for(int j=0;j<9-i;j++)
        {
            printf("   ");
        }
        for(int j=0;j<10-i;j++)
        {
            printf(" * ");
        }
        printf("\n");
        printf("\n");
    }
    for(int i=0;i<10;i++)
    {
        for(int j=0;j<9-i;j++)
        {
            printf("   ");
        }
        for(int j=0;j<1+i;j++)
        {
            printf(" * ");
        }
        for(int j=0;j<i;j++)
        {
            printf("   ");
        }
        for(int j=0;j<10-i;j++)
        {
            printf(" * ");
        }
        printf("\n");
        printf("\n");
    }

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

07. 간단한 프로그램 만들기 2  (6) 2025.08.05
05. 함수  (3) 2025.08.05
CS study 4  (0) 2025.08.05
CS study3  (1) 2025.08.05
04. 배열  (0) 2025.06.13
'C/Assignment' 카테고리의 다른 글
  • 07. 간단한 프로그램 만들기 2
  • 05. 함수
  • CS study 4
  • CS study3
m_Dev
m_Dev
  • m_Dev
    m_Dev
    m_Dev
  • 전체
    오늘
    어제
    • 분류 전체보기
      • MAIN STUDY
        • 정보보안
        • 빅데이터
        • 정보처리
        • 컴퓨터 구조
        • 기타
      • JOB
        • Study
        • Project
      • LMS 7
        • 개발일지
      • FRAMEWORK
        • Qt
        • MFC
        • Winform
        • WPF
        • MAUI
      • NETWORK
        • Study
        • Assignment
      • PYTHON
        • Set
        • Study
        • Assignment
        • Project
      • C
        • Set
        • Study
        • Assignment
        • Project
      • C++
        • Set
        • Study
        • Assignment
        • Project
      • C#
        • Set
        • Study
        • Assignment
        • Project
      • DATABASE
        • MySQL
        • SQLite
      • IDE
        • VisualStudioCode
        • VisualStudio
        • Pycharm
        • Colab
      • 기타
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
m_Dev
06. 간단한 프로그램 만들기 1
상단으로

티스토리툴바