간단한 프로그램 함수로 구현하기 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 |