간단한 프로그램 함수로 구현하기 1
사용자에게 숫자 2개를 입력받고, 사칙연산 기호(+, -, *, /, %, //) 를 입력받으면, 그 연산 결과를 출력하라.
참고) 예제01, 예제02, 예제03, 예제42
//간단한 프로그램 함수로 구현하기 1
//사용자에게 숫자 2개를 입력받고, 사칙연산 기호(+, -, *, /, %, //) 를 입력받으면, 그 연산 결과를 출력하라.
#include <stdio.h>
void plus(int a, int b, int answer, char pl);
void na(int a, int b, int answer, int Mox, char pl);
int main(){
int a, b, answer, Mox;
char pl;
printf("연산 할 2개의 정수와 기호를 입력하시오\n(곱셉은 *| 나눗셈은 / )\n\n");
scanf("%d %c %d", &a, &pl, &b);
if(pl == '+'){
plus(a, b, answer, pl);
}else if(pl == '-'){
plus(a, b, answer, pl);
}else if(pl == '*'){
plus(a, b, answer, pl);
}else if(pl == '/'){
na(a, b, answer,Mox , pl);
}
}
void plus(int a, int b, int answer, char pl){
if(pl == '+'){
answer = 0;
answer = a + b;
}else if(pl == '-'){
answer = 0;
answer = a - b;
}else if(pl == '*'){
answer = 0;
answer = a * b;
}
printf("정답은 %d 입니다\n", answer);
}
void na(int a, int b, int answer, int Mox, char pl){
if(pl == '/'){
Mox = a % b;
answer = a / b;
}
printf("정답은 %d 입니다\n", answer);
printf("나머지는 %d 입니다\n", Mox);
}
간단한 프로그램 함수로 구현하기 2
사용자가 사각형의 넓이, 원의 넓이, 삼각형의 넓이, 원의 둘레를 선택하고 자동 계산되도록 구현하라.
그리고 계산에 필요한 값을 입력받고, 그 결과를 출력하는 프로그램을 구현하라.
참고) 예제04, 예제05, 과제02
사각형의 넓이 = 가로의 길이 × 세로의 길이
원의 넓이 = 반지름 × 반지름 × 원주율
각형의 넓이 = (1/2) 밑변 × 높
#include <stdio.h>
#define PIE 3.14
void pl(int a, int b, int answer, char select, int select2);
int main(void)
{
int a, b, answer;
char select, select2;
printf("도형을 선택하십시오..\n1. 사각형 | 2. 삼각형 | 3. 원 \n");
scanf("%c", &select);
pl(a, b, answer, select, select2);
}
void pl(int a, int b, int answer, char select, int select2){
while(1){
if(select == '3'){
printf("원을 선택하셨습니다. 둘레와 넓이를 구할 반지름을 입력 해 주세요.\n");
scanf("%d", &a);
answer = 2 * PIE * a;
select2 = (a * a) * PIE;
printf("원의 둘레는%.2d / 넓이는 %.2d 입니다.", answer, select2);
break;
}else if(select == '2'){
printf("삼각형을 선택하였습니다.\n삼각형의 넓이를 연산하기 위해 길이와 높이를 입력 해 주세요.");
scanf("%d %d", &a, &b);
answer = a * b;
printf("삼각형의 넓이는 %d 입니다.", answer);
break;
}else if(select == '1'){
printf("사각형을 선택하였습니다.\n사각형의 넓이를 연산하기 위해 가로와 세로의 길이를 입력 해 주세요.\n\n");
scanf("%d %d", &a, &b);
answer = a * b;
printf("사각형의 넓이는 %d 입니다.", answer);
break;
}else{
printf("오류:지원하지 않는 입력입니다.");
printf("도형을 선택하십시오..\n1. 사각형 | 2. 삼각형 | 3. 원 \n");
scanf("%c", &select);
}
}
}
간단한 프로그램 함수로 구현하기 3
사용자가 숫자를 원하는 개수만큼 입력한다.
출력 결과는, 가장 큰 수와 가장 작은수, 홀수와 짝수인지, 양수, 0, 음수의 판결 결과를 출력하는 프로그램을 구현하라
사용자가 입력하는 숫자와 숫자 사이를 구분하는 방법은 개발자가 선택하세요.
참고) 예제09, 예제10, 예제11, 예제12, 예제13
#include<stdio.h>
int p1(int,int);
int p2(int,int);
int p3(int,int);
int p4(int,int);
int main(void)
{
int num1,num2,a;
printf("두 정수를 입력하시오.\n");
scanf("%d %d",&num1,&num2);
printf("%d와 %d중 큰 수는 %d\n",num1,num2,p1(num1,num2));
printf("%d와 %d중 작은 수는 %d\n",num1,num2,p2(num1,num2));
p3(num1,num2);
p4(num1,num2);
}
p1(int n,int m)
{
int max;
if(n>m)
max=n;
else
max=m;
return max;
}
p2(int n,int m)
{
int min;
if(n>m)
min=m;
else
min=n;
}
p3(int n,int m)
{
if (n%2==0)
printf("%d는 짝수,",n);
else
printf("%d는 홀수,",n);
if (m%2==0)
printf("%d는 짝수\n",m);
else
printf("%d는 홀수\n",m);
}
p4(int n,int m)
{
if (n>0)
printf("%d는 양수,",n);
else if(n==0)
printf("%d는 0,",n);
else
printf("%d는 음수,",n);
if (m>0)
printf("%d는 양수\n",m);
else if(m==0)
printf("%d는 0\n",m);
else
printf("%d는 음수\n",m);
}
간단한 프로그램 함수로 구현하기 4
세 수를 입력받아, 가장 큰 숫자와 가장 작은 숫자 사이의 수의 합을 계산되도록 구현하라.
모든 방법은 개발자가 선택하세요.
참고) 예제18, 예제19, 예제20, 예제21, 예제22, 예제23, 예제24
#include <stdio.h>
void number(int a, int b, int c, int *max, int *min); // 두 개의 값을 반환하기 위해 포인터 사용
int main(void) {
int a, b, c;
int max, min;
int sum = 0;
printf("세 수를 입력하시오: ");
scanf("%d %d %d", &a, &b, &c);
// 가장 큰 수와 작은 수를 계산
number(a, b, c, &max, &min);
printf("가장 큰 수는 %d\n", max);
printf("가장 작은 수는 %d\n", min);
for (int i = min + 1; i < max; i++)
{
sum = sum+i;
}
printf("가장 큰 수와 작은 수 사이의 합은: %d\n",sum);
return 0;
}
void number(int a, int b, int c, int *max, int *min)
{
if (a > b)
{
*max = a;
*min = b;
}
else
{
*max = b;
*min = a;
}
if (*max < c)
{
*max = c;
}
if (*min > c)
{
*min = c;
}
}
간단한 프로그램 함수로 구현하기 5
사용자가 도형 모양을 숫자로 선택하고, 해당 번호 도형을 출력하도록 프로그램을 구현하라
#include <stdio.h>
void p1 (int,int);
void p2 (int,int);
void p3 (int,int);
void p4 (int,int);
void p5 (int,int);
void p6 (int,int);
void p7 (int,int);
int main()
{
int i, j, k = 0;
printf("1부터 7까지 원하는 도형을 고르시오 (종료할려면 q) :\n");
while(scanf("%d",&k) == 1)
{
if(k == 1)
{
p1(i,j);
}
else if(k == 2)
{
p2(i,j);
}
else if(k == 3)
{
p3(i,j);
}
else if(k == 4)
{
p4(i,j);
}
else if(k == 5)
{
p5(i,j);
}
else if(k == 6)
{
p6(i,j);
}
else if(k == 7)
{
p7(i,j);
}
}
return 0;
}
void p1 (int i,int j)
{
// 첫번째 삼각형
for (i = 0; i <= 5; i++)
{
for (j = 0; j <= 5; j++)
{
if(j <= i)
{
printf(" * ");
}
else
{
printf(" ");
}
}
printf("\n");
}
printf("\n");
}
void p2 (int i ,int j)
{
// 두번째 삼각형
for (i = 0; i <= 5; i++)
{
for (j = 0; j <= 5; j++)
{
if(j >= 5-i)
{
printf(" * ");
}
else
{
printf(" ");
}
}
printf("\n");
}
printf("\n");
}
void p3 (int i ,int j)
{
// 세번째 삼각형
printf("\n");
for (i = 0; i <= 5; i++)
{
for (j = 0; j <= 5; j++)
{
if(j <= 5-i)
{
printf(" * ");
}
// else
// {
// printf(" ");
// }
}
printf("\n");
}
printf("\n");
}
void p4 (int i ,int j)
{
// 네번째 삼각형
printf("\n");
for (i = 0; i <= 5; i++)
{
for (j = 0; j <= 5; j++)
{
if(j >= i)
{
printf(" * ");
}
else
{
printf(" ");
}
}
printf("\n");
}
printf("\n");
}
void p5 (int i ,int j)
{
// 다섯번째 삼각형
printf("\n");
for (i = 0; i <= 5; i++)
{
for (j = 0; j <= 4 - i; j++)
{
printf(" # ");
}
for (j = 0; j < 2 * i + 1; j++)
{
printf(" * ");
}
printf("\n");
}
printf("\n");
}
void p6 (int i ,int j)
{
// 여섯번째 삼각형
for (i = 0; i <= 5; i++)
{
for (j = 0; j <= i-1; j++)
{
printf(" ");
}
for (j = 12; j > 2 * i + 1; j--)
{
printf(" * ");
}
printf("\n");
}
printf("\n");
}
void p7 (int i ,int j)
{
// 일곱번째 삼각형
for (i = 0; i <= 2; i++)
{
for (j = 0; j <= 4 - i; j++)
{
printf(" ");
}
for (j = 0; j < 2 * i + 1; j++)
{
printf(" * ");
}
printf("\n");
}
for (i = 0; i <= 2; i++)
{
for (j = -3; j <= i-1; j++)
{
printf(" ");
}
for (j = 6; j > 2 * i + 1; j--)
{
printf(" * ");
}
printf("\n");
}
printf("\n");
}
간단한 프로그램 함수로 구현하기 6
삼각형 모양 출력하기: 사용자로부터 정수 하나를 입력받아 다음 실행 예와 같은 도형을 출력하는 프로그램을 장석하라.
첫번째 줄에는 '*'문자가 1개,
두번째 줄에는 '*'문자가 2개,
세번째 줄에는 '*'문자가 3개,
이와 같이 매 줄마다 하나씩 늘어가면ㅅ '*' 문자가 출력된다.
단, '*'문자가 출력되기 전에 공백 문자(들)이 먼저 출력된다.
@실습 및 프로그래밍 절차
- 사용자로부터 1개의 정수값을 입력받고, 이 값이 0 이하인 경우 프로그램은 종료한다.
- 반복문을 사용하여 입력값 만큼 반복하여 각 라인을 출력한다.
- 각 라인 또한 반복문을 사용하여 공백 문자를 먼저 출력하고, 또 다시 반복문을 사요하여 '*'문자를 출력한다.

간단한 프로그램 함수로 구현하기 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>
void p(int i,int j,int n);
int main(void)
{
int i,j,n;
printf("정수 입력(끝내려면 q)\n");
while (scanf("%d",&n)==1)
{
n=n/2;
p(i,j,n);
}
return 0;
}
void p(int i,int j,int n)
{
for (i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
{
if(j <=(n+1)-i)
printf(" x ");
else
printf(" ");
}
printf(" ");
for(j=1; j<=n; j++)
{
if(j>=i)
printf(" x ");
else
printf(" ");
}
printf("\n");
}
for (i=1; i<=(n+1); i++)
{
for(j=1; j<=n; j++)
{
if(j>=i)
printf(" ");
else
printf(" x ");
}
printf(" ");
for(j=1; j<=n; j++)
{
if (j>=(n+2)-i)
printf(" x ");
else
printf(" ");
}
printf("\n");
}
}

간단한 프로그램 함수로 구현하기 8
꽉찬 다이아몬드 만들기

#include<stdio.h>
void p(int i,int j,int n);
int main(void)
{
int i,j,n;
printf("정수 입력(끝내려면 q)\n");
while (scanf("%d",&n)==1)
{
n=(n/2)+1;
p(i,j,n);
}
printf("종료!\n");
return 0;
}
void p(int i,int j,int n)
{
for (i=1; i<=n; i++)
{
for(j=1; j<=n-i; j++)
printf(" ");
for(j=1; j <2 * i; j++)
printf(" x ");
printf("\n");
}
for (i=1; i<=n; i++)
{
for(j=3; j<=i+2; j++)
printf(" ");
for(j=(n*2)-1; j >2 * i; j--)
printf(" x ");
printf("\n");
}
}

간단한 프로그램 함수로 구현하기 9
나비 넥타이 만들기
#include <stdio.h>
void num(int i, int j, int n);
int main(void) {
int i, j, n;
printf("원하는 나비넥타이 행수를 입력하시오: \n");
scanf("%d", &n);
n = n/2 + 1;
num(i, j, n);
return 0;
}
void num(int i, int j, int n)
{
// 위쪽 부분
for (i = 0; i < n; i++)
{
// 왼쪽 날개
for (j = 0; j <= i; j++)
{
printf("*");
}
// 가운데 공백
for (j = 0; j < 2*(n-i-1); j++)
{
printf(" ");
}
// 오른쪽 날개
for (j = 0; j <= i; j++)
{
printf("*");
}
printf("\n");
}
// 아래쪽 부분
for (i = n-2; i >= 0; i--)
{
// 왼쪽 날개
for (j = 0; j <= i; j++)
{
printf("*");
}
// 가운데 공백
for (j = 0; j < 2*(n-i-1); j++)
{
printf(" ");
}
// 오른쪽 날개
for (j = 0; j <= i; j++)
{
printf("*");
}
printf("\n");
}
}
간단한 프로그램 함수로 구현하기 10
화살표 만들기
(입력 없이 그냥 모양만 비슷하게 해도 됨, 출력 정렬 사용 안됨)

//간단한 프로그램 만들기 1 10번
#include <stdio.h>
int main(void)
{
int i,j,k,l;
int num;
printf("입력 >>");
scanf("%d",&num);
if (num % 2 == 0)
num = num -1;
for(i=0;i<num;i++)
{
for(j=0;j<num-i;j++)
{
printf(" ");
}
for(k=0; k<2*i+1;k++)
{
printf(" * ");
}
for(l=0;l<num-i;l++)
{
printf(" ");
}
printf("\n");
}
for(i = 0; i<num; i++)
{
for(j=0;j<num/2+1;j++)
{
printf(" ");
}
for(k=0;k<num;k++)
{
printf(" * ");
}
for(l=0;l<3;l++)
{
printf(" ");
}
printf("\n");
}
}
간단한 프로그램 함수로 구현하기 11
트리 만들기
(입력 없이 그냥 모양만 비슷하게 해도 됨, 출력 정렬 사용 안됨)

#include<stdio.h>
void p(int i,int j,int n);
int main(void)
{
int i,j,n;
printf("정수 입력(끝내려면 q)\n");
while (scanf("%d",&n)==1)
{
p(i,j,n);
}
printf("종료!\n");
return 0;
}
void p(int i,int j,int n)
{
for (i=1; i<=n; i++)
{
for(j=1; j<=(n+4)-i; j++)
printf(" ");
for(j=1; j <2 * i; j++)
printf(" * ");
printf("\n");
}
for (i=2; i<=(n+2); i++)
{
for(j=1; j<=(n+4)-i; j++)
printf(" ");
for(j=1; j <2 * i; j++)
printf(" * ");
printf("\n");
}
for (i=3; i<=(n+4); i++)
{
for(j=1; j<=(n+4)-i; j++)
printf(" ");
for(j=1; j <2 * i; j++)
printf(" * ");
printf("\n");
}
for (i=1; i<=(n+2); i++)
{
for(j=0;j<=(n+1);j++)
printf(" ");
for(j=1;j<=(n+3);j++)
printf(" * ");
printf("\n");
}
printf("\n");
}

간단한 프로그램 함수로 구현하기 12
튤립 만들기
//간단한 프로그램 함수로 구현하기 12
#include <stdio.h>
int main(){
int toplen_max = 4;
int toplen, one, two, three, four, five, six, seven;
for(toplen = 0; toplen < toplen_max; toplen++){
for(one = toplen_max-1; one > toplen; one--){
printf(" ");
}
for(two = 0; two < toplen*2+1; two++){
printf("* ");
}
for(three = toplen_max*2; three > toplen*2+1; three--){
printf(" ");
}
for(four = 0; four < toplen*2+1; four++){
printf("* ");
}
for(five = toplen_max*2; five > toplen*2+1; five--){
printf(" ");
}
for(six = 0; six < toplen*2+1; six++){
printf("* ");
}
printf("\n");
//튤립상단
}
for(toplen = 0; toplen <= toplen_max*3-1; toplen++){
for(one = 0; one < toplen; one++){
printf(" ");
}
for(two = toplen_max*6; two > toplen*2+1; two--){
printf("* ");
}
printf("\n");
//튤립 꽃받침쪽
}
for(toplen = 0; toplen < toplen_max*3; toplen++){
for(one = 0; one < toplen_max*3-1; one++){
printf(" ");
}
for(two = 0; two < 1; two++){
printf("* ");
}
printf("\n");
//튤립 줄기부분
}
}
간단한 프로그램 함수로 구현하기 13
풍차 만들기
(입력 없이 그냥 모양만 비슷하게 해도 됨, 출력 정렬 사용 안됨, 돌아가는거 아님)

#include<stdio.h>
void p1 (int i,int j,int n);
void p2 (int i,int j,int n);
int main(void)
{
int i,j,n;
printf("풍차 크기를 입력하시오: \n");
scanf("%d",&n);
n = n -2;
p1(i,j,n);
p2(i,j,n);
}
void p1 (int i,int j,int n)
{
// 첫번째 삼각형
for (i = 0; i <= n; i++)
{
for (j = 0; j <= n; j++)
{
if(j <= i)
{
printf(" * ");
}
else
{
printf(" ");
}
}
for (j = 0; j <= n; j++)
{
if(j <= n-i)
{
printf(" * ");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
void p2 (int i ,int j,int n)
{
// 두번째 삼각형
for (i = 0; i <= n; i++)
{
for (j = 0; j <= n; j++)
{
if(j >= n-i)
{
printf(" * ");
}
else
{
printf(" ");
}
}
for (j = 0; j <= n; j++)
{
if(j >= i)
{
printf(" * ");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
'문제풀이 > C언어' 카테고리의 다른 글
간단한 프로그램 만들기 2 (0) | 2024.08.19 |
---|---|
문제풀이 4. 배열 (0) | 2024.08.14 |
문제풀이 3. 반복구조 (0) | 2024.08.14 |
문제풀이 1. 순차구조 (0) | 2024.08.14 |