문제/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;
}