본문 바로가기
IT/프로그래밍

C언어 본색 파트2 Chapter 5 연습문제 솔루션

by nutrient 2021. 5. 31.
728x90
728x170

 

1번

#include <stdio.h>

void func(char a, char *b, int c, double d);

int main () 
{
	char c = 'A';
	char *str = "ABCD";
	int num1 = 10;
	double num2 = 3.14;

	func(c, str, num1, num2);
		
	return 0;
}

void func(char a, char *b, int c, double d) {
	printf("%c %s %d %.2lf\n", a, b, c, d);
}

 

2번

#include <stdio.h>

void func(int *p1, int (*p2)[2]);

int main () 
{
	int array1[4] = {10, 20, 30, 40};
	int array2[2][2] = {50, 60, 70, 80};
	
	func(array1, array2);
		
	return 0;
}

void func(int *p1, int (*p2)[2]) {
	int i, j;

	for (i = 0; i < 4; i++) 
		printf("%d ", p1[i]);
	
	printf("\n");
	
	for (i = 0; i < 2; i++) 
		for (j = 0; j < 2; j++)
			printf("%d ", p2[i][j]);

	printf("\n");
}

 

3번

#include <stdio.h>

void arrayShift(int *p);

int main () 
{
	int array1[8] = {1, 2, 3, 4, 5, 6, 7, 8};
	int i;

	for (i = 0; i < 8; i++)
		printf("%d ", array1[i]);

	printf("\n");
	
	arrayShift(array1);
		
	for (i = 0; i < 8; i++)
		printf("%d ", array1[i]);

	printf("\n");

	return 0;
}

void arrayShift(int *p) {
	int i, temp;

	temp = p[7];

	for (i = 7; i > 0; i--) 
		p[i] = p[i-1];
	
	p[0] = temp;
}

 

4-5번

part2_ch5_prob4-5.pptx
0.07MB

 

6번

#include <stdio.h>

void *add(int i, int j);

int main () 
{
	int a, b;
	int *p;

	printf("첫번째 수를 입력하세요: ");
	scanf("%d", &a);

	printf("두번째 수를 입력하세요: ");
	scanf("%d", &b);

	p = add(a, b);
	
	printf("결과는 %d 입니다. \n", *p);

	return 0;
}

void *add(int i, int j) {
	
	void *p;
	static int result;

	p = &result;

	result = i + j;

	return p;
}

void *subtract(int i, int j) {
	
	void *p;
	static int result;

	p = &result;

	result = i - j;

	return p;
}

void *multiply(int i, int j) {
	
	void *p;
	static int result;

	p = &result;

	result = i * j;

	return p;
}

void *divide(int i, int j) {
	
	void *p;
	static double result;

	p = &result;

	result = i / j;

	return p;
}
728x90
그리드형

댓글