본문 바로가기
C++/문제풀이

[C++] 함수

by 씐 2024. 9. 30.
728x90

Q1. 매개변수로 전달된 문자가 대문자면 소문자로, 소문자면 대문자로 변환하는 함수를 정의하시오.

 

<코드>

#include <iostream>
using namespace std;
char convert(char ch)
{
   if(ch >= 65 && ch <= 90)
    ch += 32;
   else if(ch >= 97 && ch <= 122)
    ch -= 32;

}
int main()
{
   char data1, data2;
   cout << "문자 입력 -> ";
   cin >> data1;
   data2 = convert(data1);
   cout << data2 << endl;
}

<결과>

 

 

Q2. 매개변수로 단을 받아 해당 구구단을 출력하는 함수를 만드시오. 매개변수로 3이 전달되면 3단을 출력한다.

 

<코드>

#include <iostream>
using namespace std;
void gogodan(int dan)
{
   int i;

   for (i = 1; i <= 9; i++){
       cout << dan << "*" << i << "=" << dan * i << endl;
   }
}
int main()
{
   int dan;
   cout << "원하는 단을 입력하세요 : ";
   cin >> dan; // 단 입력받기
   gogodan(dan);
}

<결과>

 

 

Q3. 두 정수에 대한 평균을 구해서 실수로 반환하는 함수를 매개변수와 반환값이 있는 함수로 정의하시오.

 

<코드>

#include <iostream>
using namespace std;
double avg(int a, int b)
{
  double average;
  average = (double)(a + b) / 2;
  
  return average ;
}
int main()
{
  int a, b;
  double res;
  cout << "숫자 두 개를 입력하세요 : ";
  cin >> a >> b;
  res = avg(a, b);
  cout << "평균 : " << res << endl;
}

<결과>

 

 

Q4. 문자와 숫자를 매개변수로 받아 해당 문자를 숫자만큼 출력하는 함수를 정의하시오.

#include <iostream>
using namespace std;
void charPrn(char ch, int n)
{
   int i;
   for(i = 1; i <= n; i++)
    cout << ch;
}
int main()
{
   char ch;
   int n;
   cout << "반복할 문자를 입력하세요. -> ";
   cin >> ch;
   cout << "반복할 횟수를 입력하세요. -> ";
   cin >> n;
   charPrn(ch, n);
}

<결과>

 

 

Q5. 주어진 정수까지 자연수의 합을 구해서 되돌리는 함수를 정의하시오.

<코드>

#include <iostream>
using namespace std;
int total(int n)
{
   int i;
   int tot;
   for(i = 1; i <= n; i++)
   {
     tot += i;
   }
   return tot;   

}
int main()
{
   int n;
   cout << "숫자를 입력하세요. -> ";
   cin >> n;
   cout << "1부터 " << n << "까지의 정수의 합 = " << total(n) << endl;
}

<결과>

 

 

Q6. 짝수인지 판별하는 함수를 정의하시오.

<코드>

#include <iostream>
using namespace std;
bool isEven(int n)
{
    int even = n % 2;
    bool result;
    if(even == 0) // 비교연산자 사용
        result = true;
    else
        result = false;
    return result;
}
int main()
{
   int n;
   cout << "짝수, 홀수를 판별할 숫자를 입력하세요 -> ";
   cin >> n;
   if(isEven(n))
    cout << "입력하신 숫자는 짝수입니다." << endl;
   else
    cout << "입력하신 숫자는 홀수입니다." << endl;
}

 

<결과>

 

 

Q7. 주어진 정수까지 팩토리얼을 구해서 되돌리는 함수를 정의하시오.

 

<코드>

#include <iostream>
using namespace std;
double factorial(int n)
{
    int i;
    int result = 1;
    for(i = n; i >= 1; i--)
    {
        result *= i;
    }
    return result;
}
int main()
{
    int num = 0;
    double fac = 0;
    cout << "숫자를 입력하세요 -> ";
    cin >> num;
    fac = factorial(num);
    cout << num << "!= " << fac << endl;
}

<결과>

 

 

Q8. 정수, 정수, 연산자(+, -, *, / 중 하나)를 매개변수로 받아서 해당 연산자에 대한 결과를 구해서 출력하는 프로그램을 작성하되 다음과 같은 형태의 함수를 만드시오. (단, 0으로 나눌 경우 불가능임을 출력하자.)

 

<코드>

#include <iostream>
using namespace std;
int calculator(int a, int b, char op)
{
    int result;
    if(op == '+')
        result = a + b;
    else if(op == '-')
        result = a - b;
    else if(op == '*')
        result = a * b;
    else if(op == '/')
    {
        if(b == 0)
        {    
            cout << "해당 연산은 불가능합니다. 0이 아닌 수로 나눠주세요." << endl;
            return 0;
        }
        else
            result = a / b;
    }
       
    return result;
}
int main()
{
    int a,b,c;
    char op;
    cout << "두 정수와 +, -, *, / 중 하나의 연사자를 입력하세요(ex. 3 + 5) -> ";
    cin >> a >> op >> b;
    c = calculator(a, b, op);
    cout << c << endl;
}

<결과>

'C++ > 문제풀이' 카테고리의 다른 글

[C++] for문, while문 연습문제(2)  (0) 2023.10.20
[C++] for문, while문 연습문제(1)  (2) 2023.10.05
[C++] if문 연습문제  (0) 2023.10.02
[C++] 자료형과 연산자 연습문제  (2) 2023.09.18