728x90
728x170
1번
#include <stdio.h>
int abs(int x);
int main(void) {
int a;
int result=0;
printf("정수를 입력하세요 : ");
scanf("%d", &a);
result = abs(a);
printf("절대값은 : %d입니다. \n", result);
return 0;
}
int abs(int x) {
if(x >= 0)
return x;
else
return -x;
}
/*
절대값을 반환하는 함수를 구현하는 문제입니다.
입력값이 0보다 작으면 -를 붙여 양수로 변환시킵니다.
*/
2번
#include <stdio.h>
int sum(int x);
int main(void) {
int i;
for(i=1; i<=12; i++)
{
printf("%d ", sum(i));
}
printf("\n");
}
int sum(int x) {
if (x <= 2)
return 1;
else
return sum(x-1) + sum(x-2);
}
/*
토끼의 개체수 증가를 구하는 문제입니다.
재귀 함수 호출을 통해 문제를 해결합니다.
*/
3번
#include <stdio.h>
int plus(int i, int j); // i + j
int minus(int i, int j); // i - j
int multiply(int i, int j); // i * j
float divide(int i, int j); // i / j
int main() {
int a, b;
int result;
double result2;
printf("input two numbers : ");
scanf("%d %d", &a, &b);
result = plus(a, b);
printf("a + b = %d \n", result);
result = minus(a, b);
printf("a - b = %d \n", result);
result = multiply(a, b);
printf("a * b = %d \n", result);
result2 = divide(a, b);
printf("a / b = %lf \n", result2);
return 0;
}
int plus(int i, int j) {
return i + j;
}
int minus(int i, int j) {
return i - j;
}
int multiply(int i, int j) {
return i * j;
}
float divide(int i, int j) {
return (double) i / j;
}
/*
각 함수의 원형을 만들어주면 되는 간단한 문제입니다.
*/
4번
#include <stdio.h>
int getArea(int x, int y);
int main(void) {
int a, b;
int result;
printf("밑변 길이 : ");
scanf("%d", &a);
printf("높이 : ");
scanf("%d", &b);
result = getArea(a, b);
printf("사각형의 넓이는 %d입니다. \n", result);
return 0;
}
int getArea(int x, int y) {
return x * y;
}
/*
scanf를 이용하여 값을 입력받고 getArea라는 함수를 통해 값을 반환하는 간단한 문제입니다.
*/
5번
#include <stdio.h>
int square(int x);
int cube(int x);
int quartic(int x);
int quintic(int x);
int main() {
int a;
int result;
printf("A TABLE OF POWERS \n");
printf("------------------------------------------------------------\n");
printf(" INTEGER SQUARE CUBE QUARTIC QUINTIC\n");
printf("------------------------------------------------------------\n");
for(a=1; a<=3; a++)
{
printf("\t%3d\t", a);
result=square(a);
printf("%6d\t", result);
result=cube(a);
printf("%8d\t", result);
result=quartic(a);
printf("%5d\t", result);
result=quintic(a);
printf("%10d \n", result);
}
return 0;
}
int square(int x) {
return x*x;
}
int cube(int x) {
return x*x*x;
}
int quartic(int x) {
return x*x*x*x;
}
int quintic(int x) {
return x*x*x*x*x;
}
/*
제곱, 세제곱, 네제곱, 다섯제곱을 계산하는 함수를 각기 만들어 출력합니다.
*/
6번
#include <stdio.h>
int Add(int x, int y);
int Count();
int main(void) {
int a, b, c;
int result;
c = 0;
while(c < 100)
{
printf("숫자 두 개를 입력하세요(0 0 -> exit) : ");
scanf("%d %d", &a, &b);
if(a == 0 && b == 0) {
break;
}
else {
result = Add(a, b);
printf("덧셈 결과 : %d \n", result);
}
c = Count();
}
printf("총 연산 수 : %d \n", c);
return 0;
}
int Add(int x, int y) {
return x + y;
}
int Count() {
static int c = 0;
c++;
return c;
}
/*
정적 변수로 c를 잡아 총 연산을 몇 번 했는지 확인하는 데 이용합니다.
Count()함수는 정적 변수 c값을 증가시키는 데 이용되며 c를 반환합니다.
Count()함수내에서 c는 정적 변수이기 때문에 Count()가 계속 호출되도 이전 값을 유지합니다.
*/
7번
#include <stdio.h>
int Alpha(char x);
int main(void) {
char ch;
int result;
printf("알파벳을 입력하세요 : ");
scanf("%c", &ch);
result = Alpha(ch);
printf("입력한 %c는 알파벳 순서로 %d번째 문자입니다. \n", ch, result);
return 0;
}
int Alpha(char x) {
int num;
if(x >= 65 && x <= 90) {
num = x - 64;
return num;
}
else {
num = x - 96;
return num;
}
}
/*
char형의 변수는 int형으로 자동 캐스팅될 수 있으며, 각각의 문자는 고유의 키값을 가지고 있습니다.
이를 아스키 코드라고 하며, Alpha함수가 if-else문을 이용하여 분기되어 있는 것은 대소문자에 모두 대응하기 위해서입니다.
현재 위 코드는 알파벳 이외의 기호나 숫자를 입력했을 때도 대응하므로 else 대신 else if를 사용하여 조건을 추가해줄 필요가 있으나,
문제의 의도는 함수를 이해하는 데 있으므로 간단히 else로만 처리하도록 합니다.
*/
8번
#include <stdio.h>
int sum(int x);
int main(void) {
int a;
int result;
printf("input your number = ");/
scanf("%d", &a);
result = sum(a);
printf("1부터 %d까지의 합 : %d \n", a, result);
return 0;
}
int sum(int x) {
if(x <= 1)
return 1;
else
return x + sum(x-1);
}
/*
재귀함수를 이용하여 1부터 입력값까지의 합을 구하도록 하였습니다.
1보다 작게 되면 재귀 호출이 멈추어야하기 때문에 이때는 1을 리턴합니다.
*/
728x90
그리드형
'IT > 프로그래밍' 카테고리의 다른 글
C언어 본색 파트2 Chapter 2 연습문제 솔루션 (0) | 2021.05.31 |
---|---|
C언어 본색 파트2 Chapter 1 연습문제 솔루션 (0) | 2021.05.31 |
C언어 본색 파트1 Chapter 8 연습문제 솔루션 (0) | 2021.05.31 |
C언어 본색 파트1 Chapter 7 연습문제 솔루션 (0) | 2021.05.31 |
C언어 본색 파트1 Chapter 6 연습문제 솔루션 (0) | 2021.05.31 |
댓글