Search
Duplicate
🔢

13장. 실습문제

생성일
2022/06/10 02:25
태그
C++

13장. 실습문제

1.
다음은 정수를 입력받아 구구단을 출력하는 프로그램이다. 그런데 이 프로그램은 1~9가 아닌 정수가 입력되는 것을 거러내지 못하고, 특히 문자가 입력되면 무한루프에 빠진다. try-throw-catch를 이용해 이 프로그램을 수정하라.
#include <iostream> using namespace std; // int main() { // int n; // while(true) { // cout << "양수 입력 >> "; // cin >> n; // try { // throw -1; // throw "s"; // } catch(float f) { // cout << "잘못된 입력입니다. 1~9 사이의 정수만 입력하세요"; // } catch(char c) { // cout << "입력 오류가 발생하여 더 이상 입력되지 않습니다. 프로그램을 종료합니다" // } // for (int i = 1; i < 9; i++) // cout << n << "x" << i << "=" << n*i << ' '; // cout << endl; // } // } int main() { int n; while(true) { cout << "양수 입력 >> "; try { cin >> n; if(cin.fail()) throw "정수값이 아닌 값을 입력!"; if(n < 1 || n > 9) throw n; for (int i = 1; i < 9; i++) cout << n << "x" << i << "=" << n*i << ' '; cout << endl; } catch(const char* s) { cout << "입력 오류 : " << s << endl; return 0; } catch(int n) { cout << "잘못된 입력입니다. 1~9 사이의 정수만 입력하세요" << endl; } } }
C++
복사
2.
다음은 C코드로서 get.c파일에 저장되어 있다. get() 함수를 호출해 두 정수를 키보드로부터 입력받아 아래 실행화면과 같이 곱을 출력하는 프로그램을 main.cpp 파일로 저장하고, get.c와 main.cpp 파일로 구성되는 프로그램을 작성하라.
// get.c #include <stdio.h> int get() { int c; printf("숫자를 입력하세요>>"); scanf("%d", &c); return c; }
C
복사
// main.cpp #include <iostream> using namespace std; extern "C" int get(); int main() { int n = get(); int m = get(); cout << n * m << endl; }
C++
복사