自学内容网 自学内容网

C++程序设计例题——第三章程序控制结构

第三章程序控制结构:

3.1使用cin和cout输入输出数据

cout << 格式控制器<<表达式;
cin >>格式控制器>>变量;

格式控制器:

boolalpha : 逻辑型用文字true或false输入输出
noboolalpha:逻辑型用整数0或1输入输出

#include <iostream>  //标准输入输出流类库
#include <iomanip>  // 输入输出操纵器库
using namespace std;  //标准输入输出需要std
int main()
{
bool v; 
string tell;
cin >> boolalpha >> v;
cin >> tell;
cout << v << '\t' << boolalpha << v << '\t' << noboolalpha << v << endl;
cout << tell << '\t';
cout << "Press Enter to exit...";
system("pause");
return 0;
}

3.2计算三角形面积

已知三角形三边长,计算三角形面积:

面积: s = ( t ( t − a ) ( t − b ) ( t − c ) ) 面积:s=\sqrt{(t(t-a)(t-b)(t-c))} 面积:s=(t(ta)(tb)(tc))
但是计算面积之前,首先要确定所输入的三角形三边是否能构成三角形,完整代码如下

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double a, b, c;
cin >> a >> b >> c;
if (a + b > c && b + c > a && a + c > b) {
double s, t;
t = (a + b + c) / 2.0;
s = sqrt(t * (t - a) * (t - b) * (t - c));
cout << s;
cout << "边长为" << a <<',' << b <<"和" << c << "的三角形面积为" << s << endl;

}
system("pause");
return 0;
}

3.3输入成绩,将成绩分类

90以上A;
80-90:B;
70-80:C;
60-70:D;
60以下:E

#include <iostream>
using namespace std;
int main()
{
int score;
cin >> score;
if (score >= 90) { cout << "A" << endl;}
else if (score >= 80) { cout << "B" << endl; }
else if (score >= 70) { cout << "C" << endl; }
else if (score >= 60) { cout << "D"; }
else { cout << "E"; }
system("pause");
return 0;
}

3.4四个整数排序

先输入四个整数,然后自动从小到大排序:

#include <iostream>
using namespace std;
int main()
{
int a, b, c, d, t;
cout << "请输入四个整数";
cin >> a >> b >> c >> d;
if (a > b) { t = a, a = b, b = t; }
if (a > c) { t = a, a = c, c = t; }
if (a > d) { t = a, a = d, d = t; }
if (b > c) { t = b, b = c, c = t; }
if (b > d) { t = b, b = d, d = t; }
if (c > d) { t = c, c = d, d = t; }
cout << "四个整数从小到大:" << a << "," << b << "," << c << "," << d << endl;

system("pause");
return 0;
}

3.5输入某天日期,自动输出第二天日期

月份为1,3,5,7,8,10,12月时,一个月31天;
月份为4,6,9,11时,一个月30天
平年2月28天
闰年2月29天
闰年(能被4整除,且不能被100整除)或者(能被400整除)

#include <iostream>
using namespace std;
int main()
{
int y, m, d, Days;
cin >> y >> m >> d;
switch (m) {
case 2:
Days = 28;
if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0))Days++;
break;
case 4:case 6:case 9:case 11:Days = 30; break;
default:Days = 31;
}
d++;
if (d > Days)d = 1, m++;
if (m > 12)m = 1, y++;
cout << y << "-" << m << "-" << d;
system("pause");
return 0;
}

3.6输入月份和日期,得到星座

1-6月都是前月21号-20号
7-12月都是前月23号-22号

时间星座
3.21-4.20白羊
4.21-5.20金牛
5.21-6.20双子
6.21-7.22巨蟹
7.23-8.22狮子
8.23-9.22处女
9.23-10.22天秤
10.23-11.22天蝎
11.23-12.22射手
12.23-1.20摩羯
1.21-2.20宝瓶
2.21-3.20双鱼
#include <iostream>
using namespace std;
int main()
{
int m, d, t;
cin >> m >> d;
t = m < 7 ? 21:23;
if (d >= t)m++;
switch (m) {
case 2:cout << "宝瓶"; break;
case 3:cout << "双鱼\n"; break;
case 4:cout << "白羊\n"; break;
case 5:cout << "金牛\n"; break;
case 6:cout << "双子\n"; break;
case 7:cout << "巨蟹\n"; break;
case 8:cout << "狮子\n"; break;
case 9:cout << "处女\n"; break;
case 10:cout << "天秤\n"; break;
case 11:cout << "天蝎\n"; break;
case 12:cout << "射手\n"; break;
default:cout << "摩羯\n" << endl;
}
system("pause");
return 0;
}

3.7求和:1+……100

for循环

for (initialization; condition; increment) {
    // 循环体
}
#include <iostream>
using namespace std;
int main()
{
int i, sum;
i = 0;
sum = 0;
for (i = 0; i <= 100; i++) {
sum = sum + i;
}
cout << sum;
system("pause");
return 0;
}

while循环

while (condition) {
    // 循环体
}

condition是一个布尔表达式

#include <iostream>
using namespace std;
int main()
{
int i=1, sum=0;
while (i <= 100) { 
sum = sum + i;
i++;
}
cout << sum;
system("pause");
return 0;
}

3.9判断一个数是否是素数

素数指除了1和自己以外,不能被其他数整除的数

#include <iostream>
using namespace std;
int main()
{
int x, i;
cin >> x;
for (i = 2; i < x; i++) 
{
if (x % i == 0) {
cout << "no";
cout << "能够被整除,被整除的数是" << i;
break;
}
}
if (i == x) 
{
cout << "是素数"; 
}
system("pause");
return 0;
}

3.10阶乘的计算

计算10!

#include <iostream>
using namespace std;
int main()
{
int x, i, t;
cout << "输入一个需要计算阶乘的整数:";
cin >> x;
t = x;
for (i = 1; i < t; i++)
{
x = i * x;
}
cout << x;
system("pause");
return 0;
}

输入一个需要计算阶乘的整数:10
3628800

3.11计算圆周率

π 4 ≈ 1 − 1 3 + 1 5 − 1 7 + 1 9 − 1 11 … \cfrac{π}{4} ≈1- \cfrac{1}{3} + \cfrac{1}{5} - \cfrac{1}{7}+ \cfrac{1}{9} - \cfrac{1}{11} … 4π131+5171+91111
要求最后一项绝对值小于 1 0 − 7 10^{-7} 107

#include <iostream>
using namespace std;
int main()
{
float pi=0;
int i, n;
for (i = 1; (1.0 / i) > 1e-7; i = i + 2)
{
n = i;
if ((n + 1) % 4 == 0)n = -i;
pi = pi + 1.0 / n;
}
pi = pi * 4.0;
cout <<"i此时等于" << i;
cout <<"\nπ的近似值是" << pi;
system("pause");
return 0;
}

3.12统计字母、数字和空格个数

从键盘中输入一行字符,直到回车结束,统计字母、数字和空格个数

#include <iostream>
using namespace std;
int main()
{
int c, a = 0, n = 0, s = 0;
while ((c = cin.get()) != '\n')
if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) a++;
else if (n >= '0' && n <= '9') n++;
else if (c == ' ') s++;

cout << "字母有" << a << "\n数字有" << n << "\n空格有" << s;
system("pause");
return 0;
}

3.13百钱买百鸡问题

公鸡一只5元
母鸡一只3元
小鸡三只1元
共100元,买100只鸡,怎么安排?
答案:

1种情况:0只公鸡..    25只母鸡..      75只小鸡..2种情况:4只公鸡..    18只母鸡..      78只小鸡..3种情况:8只公鸡..    11只母鸡..      81只小鸡..4种情况:12只公鸡..   4只母鸡..       84只小鸡..

代码:

#include <iostream>
using namespace std;
int main()
{
int x, y, z, n, n1, i=0;
for (n = 0; n < 20; n++)
{
x = 5 * n;
for (n1 = 0; n1 < 30; n1++)
{
y = 3 * n1;
z = 100 - n - n1;
z = z / 3.0;
if ((x + y + z) == 100&&(100 - n - n1)%3==0)
{
i++;
cout <<"第"<< i << "种情况:";
cout << n << "只公鸡..\t" << n1 << "只母鸡..\t" << 100-n-n1 << "只小鸡..\n";
break;
}
}
}
system("pause");
return 0;
}

3.14斐波那契数列前40个数

f ( 1 ) = 1 ( n = 1 ) f ( 2 ) = 1 ( n = 2 ) f ( n ) = f ( n − 1 ) + f ( n − 2 ) ( n > 2 ) f(1) = 1(n=1)\\ f(2) = 1(n=2)\\ f(n) = f(n-1) +f(n-2) (n>2) f(1)=1n=1f(2)=1n=2f(n)=f(n1)+f(n2)n>2
结果:

请输入想要获取的斐波那契数个数:
40
        1       1       2       3       5       8       13      21      34      55      89      144     233     377     610     987     1597    2584    4181    6765    10946   17711   28657   46368   75025   121393  196418  317811  514229  832040  1346269 2178309 3524578 5702887 9227465 14930352        24157817        39088169        63245986        102334155       请按任意键继续. . .

代码:

#include <iostream>
using namespace std;
int main()
{
int i, x, y=1, z=1, t;
cout << "请输入想要获取的斐波那契数个数:\n";
cin >> x;
cout << "\t" << y << "\t" << z << "\t";
for (i = 2; i < x; i++)
{
t = z;
z = y + z;
y = t;
cout << z << "\t";
}
system("pause");
return 0;
}

原文地址:https://blog.csdn.net/kinkinhe/article/details/144738801

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!