박민영

명품 C++ 프로그래밍 2장 연습문제

Created March 8, 2022

2-1

#include <iostream>
using namespace std;
int main()
{
	for (int i = 1; i < 101; i++)
	{
		cout << i << '\t';
		if (i % 10 == 0)
		cout << endl;
	}
}

2-2

#include <iostream>
using namespace std;

int main()
{
	for (int c = 1; c < 10; c++)
	{
		for (int r = 1; r < 10; r++)
		{
			cout << r << "x" << c << "=" << r * c << '\t';
			//if (r == 9)
				//cout << endl;
		}
		cout << endl;
	}
}

2-3

#include <iostream>
using namespace std;

int main()
{
	int num1, num2;
	cout << "두 수를 입력하라>>";
	cin >> num1 >> num2;
	/*if (num1 > num2)
		cout << "큰 수 = " << num1;
	else
		cout << "큰 수 = " << num2;
		*/
	cout << "큰 수 = ";
	if (num1 > num2)
		cout << num1;
	else
		cout << num2;
}

2-4

#include <iostream>
using namespace std;

int main()
{
	float a, b, c, d, e;
	float max = 0;
	cout << "5개의 실수를 입력하라>>";
	cin >> a >> b >> c >> d >> e;
	if (max < a)
		max = a;
	if (max < b)
		max = b;
	if (max < c)
		max = c;
	if (max < d)
		max = d;
	if (max < e)
		max = e;
	cout << "제일 큰 수 = " << max;


}

2-5

#include <iostream>
using namespace std;

int main()
{
	int num = 0;
	char x[100];
	cout << "문자들을 입력하라(100개 미만).\n";
	cin.getline(x, 100, '\n');
	for (int i = 0; i < 100 ; i++)
	{
		if (x[i] == 'x')
			num++;
	}
	cout << "x의 개수는 " << num;
}

2-6

#include <iostream>
#include <string>
using namespace std;

int main()
{
	string a;
	string b;
	cout << "새 암호를 입력하세요>>";
	getline(cin, a);
	cout << "새 암호를 다시 한 번 입력하세요>>";
	getline(cin, b);
	if (a == b)
		cout << "같습니다";
	else
		cout << "같지 않습니다";

}

2-7

#include <iostream>
#include <cstring>
using namespace std;

int main()
{
	char str[100];
	while (1)
	{
		//char str[100];
		cout << "종료하고싶으면 yes를 입력하세요>>";
		cin.getline(str, 100, '\n');
		if (strcmp(str, "yes") == 0)
		{
			cout << "종료합니다...";
			break;
		}
	}
}

2-8

#include <iostream>
using namespace std;

int main()
{
	char name[100], max[100];
	int max_cnt = 0;

	cout << "5명의 이름을 ';'으로 구분하여 입력하세요\n>>";
	for (int i = 0; i < 5; i++)
	{
		//char name[100];
		cin.getline(name, 100, ';');
		cout << i+1<<":"<< name << '\n';
		if (strlen(name) > max_cnt)
		{
			strcpy(max, name);
			max_cnt = strlen(name);
		}
	}
	cout << "가장 긴 이름은 " << max << '\n';
}

2-9

#include <iostream>
using namespace std;

int main()
{
	char name[100];
	char address[100];
	int age;
	cout << "이름은?";
	cin.getline(name, 100, '\n');
	cout << "주소는?";
	cin.getline(address, 100, '\n');
	cout << "나이는?";
	cin >> age;
	cout << name << ", " << address << ", " << age << "세" << endl;
}

2-10

#include <iostream>
#include <cstring>
using namespace std;

int main()
{
	char str[100];//, cnt[100];
	cout << "문자열 입력>>";
	cin >> str;
	for (int i = 0; i < strlen(str); i++)
	{
		for (int j = 0; j <= i; j++)
		{
			cout << str[j];
		}
		cout << '\n';
	}
}

2-11

#include <iostream>
using namespace std;
int main()
{
	int k, n = 0;
	int sum = 0;
	cout << "끝 수를 입력하세요>>";
	cin >> n;
	for (k = 1; k <= n; k++)
	{
		sum += k;
	}
	cout << "1에서 " << n << "까지의 합은 " << sum << " 입니다.\n";
}

2-12

#include <iostream>
using namespace std;
int sum(int a, int b);
int main()
{

	int n = 0;
	cout << "끝 수를 입력하세요>>";
	cin >> n;
	cout << "1에서 " << n << "까지의 합은 " << sum(1,n) << " 입니다.\n";
}
int sum(int a, int b)
{
	int k, res = 0;
	for (k = a; k <= b; k++)
	{
		res += k;
	}
	return res;
}

2-13

#include <iostream>
using namespace std;

int main()
{
	int menu;
	int num;
	cout << "***** 승리장에 오신 것을 환영합니다. *****\n";
	while (1)
	{
		cout << "짬뽕:1, 짜장:2, 군만두:3, 종료:4>>";
		cin >> menu;
		if (menu < 0 || menu>4)
		{
			cout << "다시 주문하세요!!\n";
			continue;
		}
		if (menu == 4)
		{
			cout << "오늘 영업은 끝났습니다.\n";
			break;
		}
		cout << "몇인분?";
		cin >> num;

		switch (menu)
		{
		case 1:
				cout << "짬뽕 " << num << "인분 나왔습니다\n";
				break;
		case 2:
			cout << "짜장 " << num << "인분 나왔습니다\n";
			break;
		case 3:
			cout << "군만두 " << num << "인분 나왔습니다\n";
			break;
		}
	}
}

2-14

#include <iostream>
using namespace std;

int main()
{

}

2-15

#include <iostream>
using namespace std;

int main()
{
	char op;
	int a, b, res;

	while (true)
	{
		cout << "?";
		cin >> a >> op >> b;

		switch (op)
		{
		case '+':
			res = a + b;
			break;
		case '-':
			res = a - b;
			break;
		case '*':
			res = a * b;
			break;
		case '/':
			res = a / b;
			break;
		case '%':
			res = a % b;
			break;
		default:
			break;
		}
		cout << a << " " << op << " " << b << " = " << res << '\n';
	}
}

2-16

#include <iostream>
#include <cstring>
#include <string>
using namespace std;

int main()
{
	char buf[10000];
	int alphabet[26] = { 0 }, ind;
	cout << "영문 텍스트를 입력하세요. 히스토그램을 그립니다." << endl
		<< "텍스트의 끝은 ; 입니다. 10000개까지 가능합니다.\n";
	cin.getline(buf, 10000, ';');
	cout << "총 알파벳 수 " << strlen(buf) << '\n'; // 공백이랑 알파벳 아닌 것도 포함되잖아

	for (int i = 0; i < strlen(buf); i++)
	{
		if (buf[i] >= 'A' && buf[i] <= 'Z')
		{
			ind = (int)(buf[i] - 'A');
			alphabet[ind]++;
		}
		else if (buf[i] >= 'a' && buf[i] <= 'z')
		{
			ind = (int)(buf[i] - 'a');
			alphabet[ind]++;
		}
		else
		{
		}
	}
	for (int i = 0; i < 26; i++)
		{
			cout << (char)('a' + i) << " (" << alphabet[i] << ")\t : ";
			for (int j = 0; j < alphabet[i]; j++)
			{
				cout << "*";
			}
			cout << "\n";
		}
}