문제/C연습문제

C언어 기초 연습문제4(함수,배열)

코딩너구리 2022. 1. 14. 20:43

1. 사칙 연산을 위해 각각 plus,minus, multiply,divide 함수를 선언하고 직접 구현해보세요.

#include <stdio.h>

int Plus(int a, int b);
int Minus(int a, int b);
int Multiply(int a, int b);
float Divide(int a, int b);

int main()
{
	int a, b;
	int result;
	float result2;

	printf("두 수를 입력하세요 : ");
	scanf_s("%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 a, int b)
{
	int result = 0;
	result = a + b;
	return result;
}

int Minus(int a, int b)
{
	int result = 0;
	result = a - b;
	return result;
}


int Multiply(int a, int b)
{
	int result = 0;
	result = a * b;
	return result;
}

float Divide(int a, int b)
{
	float result = 0;
	result = a / b;
	return result;
}

 

 

 

 

 

2. 정수를 인자로 받아 제곱을 반환하는 함수 square()와 세제곱을 반환하는 함수 cube()를 작성하세요. 또한 이들을 사용하여 4제곱, 5제곱을 출력하는 함수 quartic()과 quintic()을 작성하세요.

#include <stdio.h>

int Square(int a);
int Cube(int a);
int Quartic(int a);
int Quintic(int a);
void Drow(int a);


int main()
{
	int a;

	printf("제곱을 순서대로 보여줄 마지막 정수를 입력하세요. : ");
	scanf_s("%d", &a);
	Drow(a);
	return 0;
}

void Drow(int a)
{
	int result = 0;
	printf("\nA TABLE OF POWERS\n");
	printf("--------------------------------------------------------------------------\n");
	printf("INTEGER \tSQUARE  \tCUBE    \tQUARTIC    \tQUINITC \n");
	printf("--------------------------------------------------------------------------\n");
	for (int i = 1; i <= a; i++)
	{
		printf("%d         \t", i);
		result = Square(i);
		printf("%d         \t", result);
		result = Cube(i);
		printf("%d         \t", result);
		result = Quartic(i);
		printf("%d         \t", result);
		result = Quintic(i);
		printf("%d \n", result);
	}
}

int Square(int a)
{
	int result = 0;
	result = a * a;
	return result;
}

int Cube(int a)
{
	int result = 0;
	result = a * a * a;
	return result;
}

int Quartic(int a)
{
	int result = 0;
	result = a * a * a * a;
	return result;
}

int Quintic(int a)
{
	int result = 0;
	result = a * a * a * a * a;
	return result;
}

 

 

 

 

 

3. 1부터 n까지의 합을 구하는 재귀 함수를 작성해 보세요.

#include <stdio.h>

int Self_Service(int a);

int main()
{
	int a;
	int result;

	printf("1부터 n까지의 합을 보여줄 정수 n을 입력하세요 : ");
	scanf_s("%d", &a);
	result = Self_Service(a);
	printf("1부터 %d까지의 합 :%d",a,result);
	return 0;
}

int Self_Service(int a)
{
	static int result = 0;

	if (a < 1)
		return result;
	else
	{
		result += a;
		return Self_Service(a - 1);
	}
}

 

 

 

 

 

4. 10명의 학생 성적을 배열에 저장하고 총점과 평균을 구하는 프로그램을 작성하세요.

#include <stdio.h>

int main(void)
{
	int array[10];
	int result=0;
	float result2=0;

	for (int i = 0; i <10 ; i++)
	{
		printf("학생 성적 입력:");
		scanf_s("%d", &array[i]);
	}

	for (int i = 0; i < 10; i++)
	{
		result += array[i];
	}

	result2 = result / 10;

	printf("학생 총점 :%d\n학생 평균 :%.2f", result, result2);

	return 0;
}

 

 

 

 

 

5. 9행 9열의 int형 2차원 배열 이름 array를 선언하고,  2단부터 9단까지의 구구단 결과를 저장하는 프로그램을 작성하세요.

#include <stdio.h>

int main(void)
{
	int array[8][9];

	for (int i = 2; i < 10; i++)
	{
		for (int j = 1; j < 10; j++)
		{
			array[i-2][j-1] = i * j;
			printf("%d*%d=%d\n", i, j, array[i-2][j-1]);
		}
	}


	return 0;
}

 

 

 

 

 

6.int array[2][3]={1,2,3,4,5,6}을 선언하고, array[i]== *(array+i) 표현을 이용하여 2차원 배열 요소들의 주소와 값을 출력하는 프로그램을 만드시오.

#include <stdio.h>

int main(void)
{
	int array[2][3] = {1,2,3,4,5,6};

	for (int i = 0; i < 2; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			printf("%d행%d렬의 주소 : %x,값 : %d \n", i, j, *(array + i) + j, *(*(array + i) + j));
		}
	}
	return 0;
}