自主练习C++(持续更新)

发布于:2022-11-28 ⋅ 阅读:(366) ⋅ 点赞:(0)

三个数最大值:

题目描述

编写一个程序,输入a、b、c三个值,输出其中最大值。

输入格式

一行数组,分别为a b c

输出格式

a b c其中最大的数

样例输入

复制

10 20 30

样例输出

复制

30

自测代码:

#include<iostream>
using namespace std;
void maxNum(int a, int b, int c);
int main()
{
	int a, b, c;
	cin >> a >> b >> c;
	maxNum(a, b,c);
	system("pause");
}
void maxNum(int a, int b, int c)
{
	int num;
	if (a > b)
	{
		num = a;
	}else { 
		num = b; }
	if (num > c)
		{
		cout << num << endl;
	}else { 
		cout << c<<endl; }
}

密码破译:

题目描述

要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.
例如,字母"A"后面第4个字母是"E"."E"代替"A"。因此,"China"应译为"Glmre"。
请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。

输入格式

China

输出格式

加密后的China

样例输入

复制

China

样例输出

复制

Glmre

自测代码:

#include<iostream>
using namespace std;
int main()
{
	char c1,c2,c3,c4,c5;
	 cin>>c1>>c2>>c3>>c4>>c5;
	c1 = c1 + 4;
	c2 = c2 + 4;
	c3 = c3 + 4;
	c4 = c4 + 4;
	c5 = c5 + 4;

	cout << c1 << c2 << c3 << c4 << c5 << endl;

	system("pause");

}

温度转换:

题目描述

输入一个华氏温度,要求输出摄氏温度。公式为 c=5(F-32)/9,取位2小数。

输入格式

一个华氏温度,浮点数

输出格式

摄氏温度,浮点两位小数

样例输入

复制

-40

样例输出

复制

c=-40.00

自测代码:

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
	float f,c;
	cin >> f;
	c = 5 * (f - 32) / 9;
	cout <<"c=" << setiosflags(ios::fixed) << setprecision(2) << c << endl;
	system("pause");
}
  • setprecision:功能是控制输出流显示浮点数的有效数字个数并不是小数点后面有效位,如果是确定小数点后几位需要与fixed合用,在使用前要引入#include<iomanip>头文件。

三个数找最大值:

题目描述

有三个整数a b c,由键盘输入,输出其中的最大的数。

输入格式

一行数组,分别为a b c

输出格式

a b c其中最大的数

样例输入

复制

10 20 30

样例输出

复制

30

自测代码:

#include<iostream>
using namespace std;
int main()
{
	int a, b, c,temp;
	cin >> a >> b >> c;
	if (a > b ? temp=a : temp=b)
	{
		if (temp > c)
		{
			cout << temp << endl;
		}
		else { cout << c << endl; }

	}
	system("pause");
}

分段函数求值:

题目描述

有一个函数
y={  x      x<1
    |  2x-1   1<=x<10
    { 3x-11  x>=10

写一段程序,输入x,输出y

输入格式

一个数x

输出格式

一个数y

样例输入

复制

14

样例输出

复制

31

自测代码:

#include<iostream>
using namespace std;
int main()
{
	int x, y;
	cin >> x;
	if (x < 1)
	{
		y = x;
		cout << y << endl;
	}
	else if(x<10&&x>=1)
	{
		y = 2 * x - 1;
		cout << y << endl;
	}
	else {
		y = 3 * x - 11;
		cout << y << endl;
	}
	system("pause");
}

成绩评定:

题目描述

给出一百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。 90分以及90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。

输入格式

一个整数0-100以内

输出格式

一个字符,表示成绩等级

样例输入

复制

90

样例输出

复制

A

自测代码:

#include<iostream>
using namespace std;
int main()
{
	int score;
	cin >> score;
	switch (score/10)
	{
	case 10:
	case 9:
		cout << "A" << endl;
		break;
	case 8:
		cout << "B" << endl;
		break;
	case 7:
		cout << "C" << endl;
		break;
	case 6:
		cout << "D" << endl;
		break;
	default:
		cout << "E" << endl;
	}
	system("pause");
}
  • 要注意case后面跟的常数,在讨论成绩时应该满足1~100全部取到,所以在switch处选择取余得到的整数于case后的常数比较,这样就不会出现遗漏。

数字的处理与判断:

题目描述

给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123

输入格式

一个不大于5位的数字

输出格式

三行 第一行 位数 第二行 用空格分开的每个数字,注意最后一个数字后没有空格 第三行 按逆序输出这个数

样例输入

复制

12345

样例输出

复制

5
1 2 3 4 5
54321

自测代码:

#include<iostream>
using namespace std;
int main()
{
	int a,b;
	int gewei, shiwei, baiwei, qianwei, wanwei;
	cin >> a;
	if (0 <= a && a < 10)
	{
		cout << 1 << endl;
		gewei = a % 10;
		cout << gewei << endl;
		cout << gewei << endl;

	}
	else if (10 <= a && a < 100)
	{
		cout << 2 << endl;
		gewei = a % 10;
		shiwei = a  / 10;
		cout << shiwei << " " << gewei << endl;
		cout << gewei << shiwei << endl;
	}
	else if (100 <= a && a < 1000)
	{
		cout << 3 << endl;
		gewei = a % 10;
		shiwei = (a % 100) / 10;
		baiwei = a / 100;
		cout << baiwei << " " << shiwei <<" "<<gewei << endl;
		cout <<gewei<< shiwei << baiwei << endl;
	}
	else if (1000 <= a && a < 10000)
	{
		cout << 4 << endl;
		gewei = a % 10;
		shiwei = (a % 100) / 10;
		baiwei = (a % 1000) / 100;
		qianwei = a / 1000;
		cout << qianwei << " " << baiwei << " " << shiwei << " " << gewei << endl;
		cout << gewei << shiwei << baiwei <<qianwei<< endl;
	}
	else if (10000 <= a && a < 100000)
	{
		cout << 5 << endl;
		gewei = a % 10;
		shiwei = (a % 100) / 10;
		baiwei = (a % 1000) / 100;
		qianwei = (a % 10000)/1000;
		wanwei = a / 10000;
		cout << wanwei << " " << qianwei << " " << baiwei<<" "
			<< shiwei << " " << gewei << " " << endl;
		cout << gewei << shiwei << baiwei << qianwei <<wanwei<< endl;
	}
	system("pause");
}

财务管理

描述

拉里今年毕业,终于有了工作。他赚了很多钱,但不知何故似乎永远不够。拉里已经决定,他需要抓住他的金融投资组合并解决他的融资问题。第一步是弄清楚他的钱发生了什么。拉里有他的银行账户对账单,想看看他有多少钱。帮助拉里编写一个程序,从过去十二个月的每个月中获取他的期末余额,并计算他的平均账户余额。

输入

输入将是十二行。每行将包含其银行账户在特定月份的期末余额。每个数字都将为正数并显示到便士。不包括美元符号。

输出

输出将是一个数字,即十二个月期末余额的平均(平均值)。它将四舍五入到最接近的便士,紧接着是美元符号,然后是行尾。输出中不会有其他空格或字符。

示例输入

100.00
489.12
12454.12
1234.10
823.05
109.20
5.27
1542.25
839.18
83.99
1295.01
1.75

示例输出

$1581.42

自测代码:

#include<iostream>
using namespace std;
int main()
{
	float January, February, March,
		April,May,June,July,
		August,September,October,
		November,December;
	float avg;
	cin >> January>>February>>
		March>>April>>May>>June>>July>>
		August>>September>>October>>November>>December;
	avg = (January + February + March +
		April + May + June + July + August +
		September + October + November + December)/12;
	cout << "$" << avg << endl;
	system("pause");
}

Hangover

描述

你能让一叠卡片悬在桌子上多远?如果您有一张卡片,则可以创建半张卡片长度的最大悬垂。(我们假设卡片必须垂直于桌子。使用两张牌,您可以使顶部的牌悬垂下一张牌长度的半张,而底部的一张牌悬垂在桌子上三分之一的牌长,总最大悬垂量为 1/2+1/3=5/6 张牌长度。一般来说,你可以让n张牌悬垂1/2+1/3+1/4+...+1/(n+1) 张牌长度,其中上一张牌悬垂第二张牌 1/2,第二张悬垂第三张悬出 1/3,第三张悬垂第四张牌悬垂 1/4,依此类推,底牌悬垂桌子 1/(n+1)。如下图所示。

输入

输入由一个或多个测试用例组成,后跟一行,其中包含表示输入结束的数字 0.00。每个测试用例都是包含正浮点数 c 的单行,其值至少为 0.01,最多为 5.20;c 将正好包含三位数字。

输出

对于每个测试用例,输出实现至少 c 卡长度的悬垂所需的最小卡数。使用示例中所示的确切输出格式。

示例输入

1.00
3.71
0.04
5.19
0.00

示例输出

3 card(s)
61 card(s)
1 card(s)
273 card(s)
#include<iostream>
using namespace std;
int main()
{
	float temp;
	float array[10] = {};
	for (int i = 0; i < 10; i++)
	{
		float c;
		cin >> c;
		if (c != 0.00) {
			array[i] = c;
		}
		else break;
	}
	for (int i = 0; i < 10; i++)
	{
		float temp;
		temp = array[i];
		while (temp!= EOF)
		{
			float sum = 0;
			float i = 0;
			int cards = 0;
			if (temp == 0.00)
				break;
			for (i = 2.00; sum < temp; i++)
			{
				sum = sum + 1 / i;
				cards++;
			}
			cout << cards << " card(s)" << endl;
			break;
		}
	}
	system("pause");
}
本文含有隐藏内容,请 开通VIP 后查看