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

server/2024/12/28 2:51:03/

第三章 程序控制结构

    • 第三章程序控制结构:
      • 3.1使用cin和cout输入输出数据
      • 3.2计算三角形面积
      • 3.3输入成绩,将成绩分类
      • 3.4四个整数排序
      • 3.5输入某天日期,自动输出第二天日期
      • 3.6输入月份和日期,得到星座
      • 3.7求和:1+……100
      • 3.9判断一个数是否是素数
      • 3.10阶乘的计算
      • 3.11计算圆周率
      • 3.12统计字母、数字和空格个数
      • 3.13百钱买百鸡问题
      • 3.14斐波那契数列前40个数

第三章程序控制结构:

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
结果:

请输入想要获取的斐波那契数个数:
401       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;
}

http://www.ppmy.cn/server/153788.html

相关文章

Unity 战斗系统中角色UI血条设计

1:如何选取技术方案 Unity战斗系统中&#xff0c;每个角色经常会有血条与昵称。如何架构设计才高效&#xff0c;我们列举一些常用的做法: onGUI来做昵称与血条;3D世界中创建一个3D物体来做血条与昵称,然后让血条与昵称对着摄像机;基于UGUI/NGUI单独做血条与昵称的UI节点&#…

使用 Python 操作 Excel 表格

在Python中操作Excel表格&#xff0c;你可以使用几个流行的库&#xff0c;比如openpyxl、pandas和xlrd/xlwt。下面我会分别介绍这些库的基本用法。 1. 使用 openpyxl openpyxl 是一个用来读写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库。 安装&#xff1a; pip install ope…

芯片Tapeout power signoff 之IR Drop Redhawk Ploc文件格式及其意义

数字IC后端工程师在芯片流程最后阶段都会使用redhawk或voltus进行设计的IR Drop功耗signoff分析。必须确保静态&#xff0c;动态ir drop都符合signoff标准。 在做redhawk ir drop分析前&#xff0c;我们需要提供一个redhawk ploc供电点坐标。 数字IC设计后端实现前期预防IR D…

重温设计模式--10、单例模式

文章目录 单例模式&#xff08;Singleton Pattern&#xff09;概述单例模式的实现方式及代码示例1. 饿汉式单例&#xff08;在程序启动时就创建实例&#xff09;2. 懒汉式单例&#xff08;在第一次使用时才创建实例&#xff09; 单例模式的注意事项应用场景 C代码懒汉模式-经典…

聊聊volatile的实现原理?

在 Java 并发编程中&#xff0c;有 3 个最常用的关键字&#xff1a;synchronized、ReentrantLock 和 volatile。 虽然 volatile 并不像其他两个关键字一样&#xff0c;能保证线程安全&#xff0c;但 volatile 也是并发编程中最常见的关键字之一。例如&#xff0c;单例模式、Co…

RAGFlow 基于深度文档理解构建的开源 RAG引擎 - 使用Ollama添加大模型

RAGFlow 基于深度文档理解构建的开源 RAG引擎 - 使用Ollama添加大模型 flyfish 当安装完ragflow之后&#xff0c;开始添加大模型 $ git clone https://github.com/infiniflow/ragflow.git $ cd ragflow $ docker compose -f docker/docker-compose.yml up -d浏览器打开http:…

【OCR】数据集合集!

本文将为您介绍经典、热门的数据集&#xff0c;希望对您在选择适合的数据集时有所帮助。 1 RapidOCR 更新时间&#xff1a;2024-12-24 访问地址: GitHub 描述&#xff1a; 基于 ONNXRuntime、OpenVINO 和 PaddlePaddle 的超棒 OCR 多编程语言工具包。多平台、多语言 OCR 工具…

泰山派GPIO子系统驱动---亮灯

本人linux驱动小白&#xff0c;文章基于B站up主 李Sir______ 视频内容记录&#xff0c;做笔记用。如有错误欢迎指正。本文将以开发板第40引脚GPIO3_B4作为LED灯珠的控制引脚&#xff0c;高电平灯亮&#xff0c;低电平灯灭。 杂话 在linux内核中&#xff0c;芯片厂商已经把所有…