C++信奥一本通顺序结构程序设计
2026/7/9 6:02:18 网站建设 项目流程

🌟 顺序结构程序设计·学习笔记🌟

🔍 什么是“顺序结构”?

就像排队做早操一样:先站队→再踏步→最后喊口号,每一步都按顺序来,不能跳步!
在编程里,“顺序结构”就是让计算机从上到下、一步一步执行指令,比如先输入数字、再计算、最后输出结果~

📝

1. 【例2.13】数字对调

  • 任务:输入一个两位数(比如23),把十位和个位交换后输出(变成32)。
  • 思路
    两位数由“十位”和“个位”组成,比如23=2×10 + 3。要交换的话,得先把“十位”和“个位”拆出来
    • 拆个位:用「取余数」%,比如23 % 10 = 3(得到个位)。
    • 拆十位:用「整除」/,比如23 / 10 = 2(得到十位)。
    • 重新拼:新数 = 个位×10 + 十位 →3×10 + 2 = 32
  • 代码示例
    #include<iostream>usingnamespacestd;intmain(){intnum;// 存输入的两位数cin>>num;intge=num%10;// 取个位intshi=num/10;// 取十位intnewNum=ge*10+shi;// 交换后重组cout<<newNum;return0;}

2. 【例2.14】平均分

  • 任务:输入3门课的成绩(比如90 85 95),算出平均分并输出。
  • 思路
    平均分 = 「总分」÷「科目数量」。所以要先求和,再除以3。注意:如果成绩是整数,除法可能丢小数,所以要用double(能存小数的类型)!
  • 代码示例
    #include<iostream>usingnamespacestd;intmain(){doublea,b,c;// 存三门成绩(用double防止丢小数)cin>>a>>b>>c;doublesum=a+b+c;// 求总分doubleavg=sum/3.0;// 除以3(写3.0确保是小数除法)cout<<avg;return0;}

3. 【例2.15】歌手大奖赛

  • 任务:10个评委打分,去掉最高分最低分,算剩下8个的平均分。
  • 思路
    步骤拆解:① 输入10个分数 → ② 找最高分和最低分 → ③ 算总分 → ④ 减去最高、最低 → ⑤ 除以8。
    找最高/最低可以用「打擂台」法:先假设第一个数是最大/最小,然后和其他数比较,谁大/小就更新!
  • 代码示例
#include<bits/stdc++.h>usingnamespacestd;intmain(){// 计算最高分和最低分doubletotal=9.6*6;// 总和57.6doublewithoutHighest=9.4*5;// 去掉最高分的和47.0doublewithoutLowest=9.8*5;// 去掉最低分的和49.0doublehighest=total-withoutHighest;// 最高分 = 总和 - 前五和 = 10.6doublelowest=total-withoutLowest;// 最低分 = 总和 - 后五和 = 8.6// 计算中间四个分数的和doublemiddleSum=withoutHighest-lowest;// 47.0 - 8.6 = 38.4// 计算平均值(保留2位小数)doubleavg=middleSum/4;// 格式化输出(%5.2f对应)printf("%5.2lf",avg);return0;}

4. 1030 计算球的体积

  • 任务:输入球的半径r,算体积(公式:V = (4/3) × π × r³,π≈3.14159)。
  • 小侦探思路
    直接套公式!注意4/3如果用整数会算成1,所以要写成4.0/3.0(确保是小数除法);可以写成r*r*r
  • 代码示例
    #include<iostream>usingnamespacestd;intmain(){doubler;cin>>r;doublepi=3.14159;doublev=(4.0/3.0)*pi*r*r*r;// 套公式,注意小数运算cout<<v;return0;}

5. 1031 反向输出一个三位数

  • 任务:输入三位数(比如123),反向输出(变成321)。
  • 思路
    三位数有“百位、十位、个位”,分别拆出来后,重新组合成“个位×100 + 十位×10 + 百位”。
    • 拆个位:num % 10(比如123%10=3)。
    • 拆十位:(num / 10) % 10(比如123/10=12,再12%10=2)。
    • 拆百位:num / 100(比如123/100=1)。
  • 代码示例
    #include<iostream>usingnamespacestd;intmain(){intnum;cin>>num;intge=num%10;// 个位intshi=(num/10)%10;// 十位intbai=num/100;// 百位intnewNum=ge*100+shi*10+bai;// 反向组合cout<<newNum;return0;}

6. 1032 大象喝水查

  • 任务:大象要喝h升水,桶是圆柱形(半径r厘米,高H厘米),问至少需要几桶水?
  • 思路
    步骤:① 算一桶水的体积(圆柱体积公式:V = π×r²×H,单位是立方厘米)→ ② 转换单位(1升=1000立方厘米,所以一桶水是V/1000升)→ ③ 算需要几桶(用ceil函数向上取整,因为哪怕剩一点水也要多一桶)。
  • 代码示例
#include<iostream>#include<cmath>usingnamespacestd;intmain(){inth,r;cin>>h>>r;constdoublePI=3.14159;doublev=PI*r*r*h;intb=ceil(20000/v);cout<<b<<endl;return0;}

7. 1033 计算线段长度

  • 任务:输入两个点的坐标(x1,y1)(x2,y2),算两点之间的距离(公式:√[(x2-x1)² + (y2-y1)²])。
  • 小侦探思路
    这是“勾股定理”的应用!需要先算横、纵坐标的差,平方后相加,再开平方(用sqrt函数,需要包含<cmath>)。
  • 代码示例
    #include<iostream>#include<cmath>// 用sqrt必须包含这个头文件!usingnamespacestd;intmain(){doublex1,y1,x2,y2;cin>>x1>>y1>>x2>>y2;doubledx=x2-x1;// 横坐标差doubledy=y2-y1;// 纵坐标差doublelen=sqrt(dx*dx+dy*dy);// 套勾股定理公式cout<<len;return0;}

8. 1034 计算三角形面积(海伦公式)

  • 任务:输入三角形三边a,b,c,用海伦公式算面积(公式:S = √[p(p-a)(p-b)(p-c)],其中p=(a+b+c)/2)。
  • 思路
    先算半周长p,再代入公式。注意:要确保输入的三边能组成三角形(不过题目一般默认合法),然后用sqrt开平方。
  • 代码示例
    #include<iostream>#include<cmath>// 用sqrt必须包含这个头文件!usingnamespacestd;intmain(){doublea,b,c;cin>>a>>b>>c;doublep=(a+b+c)/2.0;// 半周长doubles=sqrt(p*(p-a)*(p-b)*(p-c));// 海伦公式cout<<s;return0;}

9. 1035 等差数列末项计算

  • 任务:已知等差数列首项a1、公差d、项数n,求第n项(公式:an = a1 + (n-1)×d)。
  • 小侦探思路
    等差数列是“后一项比前一项大d”,所以第n项就是首项加上(n-1)个公差,直接套公式!
  • 代码示例
    #include<iostream>usingnamespacestd;intmain(){inta1,d,n;cin>>a1>>d>>n;intan=a1+(n-1)*d;// 套等差数列公式cout<<an;return0;}

10. 1036 A×B问题

  • 任务:输入两个很大的整数AB,算它们的乘积(普通int可能装不下,要用long long)。
  • 思路
    整数范围不够时,换更大的类型!long long能存更大的数(范围约-9e18 ~ 9e18),所以用long long定义变量,避免溢出。
  • 代码示例
    #include<iostream>usingnamespacestd;intmain(){longlonga,b;// 用long long存大整数cin>>a>>b;longlongresult=a*b;// 相乘cout<<result;return0;}

11. 1037 计算2的幂

  • 任务:输入整数n,算2^n(比如n=3时,2^3=8)。
  • 思路
    方法1:用循环乘n次2(适合理解逻辑);方法2:用函数pow(2, n)(需要包含<cmath>,但结果是double,转成int即可)。
#include<bits/stdc++.h>usingnamespacestd;intmain(){intn;cin>>n;intr=pow(2,n);cout<<r<<endl;//pow(a,b)求a的b次方return0;}

14. 1038 苹果和虫子

  • 任务:有n个苹果,每x小时吃1个,过了y小时后,剩几个好苹果?
  • 思路
    步骤:① 算吃了几个苹果(y ÷ x,用ceil向上取整,因为哪怕没吃完1个也算吃1个)→ ② 剩余苹果 = 总数 - 吃的数量(注意不能是负数,最少剩0个)。
  • 代码示例
#include<bits/stdc++.h>usingnamespacestd;intmain(){intn,x,y;cin>>n>>x>>y;intr=n-ceil(1.0*y/x);//ceil必须是浮点数,向上取整cout<<max(r,0)<<endl;return0;}

💡 小贴士

  1. 拆问题:遇到复杂题,先拆成“输入→处理→输出”三步,再细分每一步做什么。
  2. 记公式:数学公式(如面积、体积、等差数列)要背熟,编程时直接套用~
  3. 试数据:写完代码后,自己编一组数(比如数字对调试23→期望32),运行看结果对不对。
  4. 查错误:如果结果不对,检查:变量类型对不对?公式有没有写错?有没有漏头文件(如<cmath>)?

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询