【编码狂想】解锁基础、分支和循环语法的终极秘籍!

简介: 【编码狂想】解锁基础、分支和循环语法的终极秘籍!



🌐第一部分 基础语法篇

😎1.1 获取字符串长度

描述

按顺序分别定义char、int、long、double类型的变量,并用sizeof()依次输出这几个变量在内存中所占用的字节数。

输入描述:

用户按顺序分别定义char、int、long、double类型的变量。

输出描述:

输出这几个变量的内存占用大小。

每个占一行,格式如下:

xxx

yyy

zzz

...

(以上xxx、yyy和zzz均代表整数)

💡解决如下:

#include <iostream>
using namespace std;
template <typename T>//使用模板类就简洁多了
void Disp(T value){
    cout<<sizeof(value)<<endl;
}
int main(){
    char ch;
    int i;
    long l;
    double d;
    Disp(ch);
    Disp(i);
    Disp(l);
    Disp(d);
    return 0;
}

😎1.2 实现四舍五入

描述

将浮点数转换为整数类型,要求四舍五入。

输入描述:

随机输入的浮点数

输出描述:

四舍五入之后的整数

示例1

输入:
14.99
输出:
15

💡解决如下:

#include <iostream>
#include <cmath>
using namespace std;
//四舍五入函数:考虑正数+负数
int Func(double d){
    int k=abs(d*10-int(d)*10);//k为小数点后一位
    if(k>=5 && d>=0) return int(d)+1;
    else if(k>=5 && d<0) return int(d)-1;
    else return int(d);
}
int main(){
    double d;
    cin>>d;
    //需要注意C、C++强制转换都是去尾法[向0靠近]
    //比如int(3.14)=int(3.94)=3
    cout<<Func(d)<<endl;
}

😎1.3 两数求和

描述

键盘录入两个整数 a 和 b,并对 a 和 b 求和,输出结果。

输入描述:

输入任意两个 int 类型的整数,范围[-1000, 1000]

输出描述:

输出两个整数的和

示例1

输入:
1
2
输出:
3

💡解决如下:

#include <iostream>
using namespace std;
int Sum(int a,int b){
    return a+b;
}
int main() {
    int a,b;
    cin>>a;
    cin>>b;
    cout<<Sum(a,b)<<endl;
    return 0;
}

😎1.4 获取两数中的较大值

描述

键盘录入两个整数 a 和 b,获取这两个整数中的较大值,并输出。

输入描述:

输入任意两个整数

输出描述:

输出两个整数中的较大值

示例1

输入:
10
20
输出:
30

💡解决如下:

#include <iostream>
using namespace std;
int main(){
    int a,b;
    cin>>a;
    cin>>b;
    cout<<(a>b?a:b)<<endl;
    return 0;
}

😎1.5 简单运算

描述

键盘输入两个 int 范围的正整数 a 和 b,范围为[1, 9999],输出这两个 int 范围的正整数的和,差,积,商,模(若 a > b 则输出 a - b,a / b,a % b 的值反之输出 b - a,b / a,b % a 的值,不考虑小数)

输入描述:

两个 int 范围的正整数,范围为[1, 9999]

输出描述:

输出这两个 int 范围的正整数的和,差,积,商,模(若 a > b 则输出 a - b,a / b,a % b 的值反之输出 b - a,b / a,b % a 的值,不考虑小数和数据越界情况)

示例1

输入:
10
5
输出:
15 5 50 2 0

💡解决如下:

#include <iostream>
using namespace std;
void Disp(int a,int b){
    cout<<a+b<<" "<<abs(a-b)<<" "<<a*b<<" "<<(a>b?a/b:b/a)<<" "<<(a>b?a%b:b%a)<<endl;
}
int main(){
    int a,b;
    cin>>a;
    cin>>b;
    Disp(a, b);
    return 0;
}

😎1.6 交换两个变量的值

描述

实现交换两个int类型变量的值

输入描述:

a变量和b变量的值,要求都是int类型的值

输出描述:

交换后a变量和b变量的值

示例1

输入:
1
2
输出:
2 1

💡解决如下:

#include <iostream>
using namespace std;
void Swap(int *ptr1,int *ptr2){
    int t=*ptr1;
    *ptr1=*ptr2;
    *ptr2=t;
}
int main(){
    int a,b;
    cin>>a;
    cin>>b;
    int *p1=&a,*p2=&b;
    Swap(p1, p2);
    cout<<a<<" "<<b<<endl;
    return 0;    
}

😎1.7 获取三个数中的最大值(三元表达式实现)

描述

键盘录入三个整数 a、b、c,获取这三个整数中的最大值,并输出。(要求使用三元表达式实现)【即a>b?a:b;形式便是三元表达式】

输入描述:

输入任意三个整数

输出描述:

输出三个整数中的最大值

示例1

输入:
100
200
300
输出:
300

💡解决如下:

#include <iostream>
using namespace std;
int MaxThree(int a,int b,int c){
    int max=a>b?a:b;
    return max>c?max:c;
}
int main(){
    int a,b,c;
    cin>>a;
    cin>>b;
    cin>>c;
    cout<<MaxThree(a, b, c)<<endl;
    return 0;
}

🌐第二部分 分支语法篇

😎2.1 计算商品打折结算金额

描述

牛牛商场促销活动:

满100打9折;

满500打8折;

满2000打7折;

满5000打6折

牛阿姨算不清楚自己应该付多少钱,请你帮忙算一下

输入描述:

牛阿姨购买商品打折前的总金额

输出描述:

参加活动后,牛阿姨购买商品应付金额。(保留小数点后1位)

示例1

输入:
654
输出:
523.2

💡解决如下:

#include <iostream>
using namespace std;
double Soal(double p){
    if(p>=5000) return p*0.6;
    else if(p>=2000) return p*0.7;
    else if(p>=500) return p*0.8;
    else if(p>=100) return p*0.9;
    else return p;
}
int main(){
    double price;
    cin>>price;
    cout<<Soal(price)<<endl;
    return 0;
}

😎2.2 判断身材状态

描述

体重指数(BMI)是世界卫生组织(WHO)推荐国际统一使用的肥胖分型标准,即BMI=体重/身高2(kg/m2)。小于 18.5 属于"偏瘦",大于等于 18.5 小于 20.9 属于"苗条",大于等于 20.9 小于等于 24.9 属于"适中",超过 24.9 属于"偏胖"。下面由你来编写一段逻辑,输入用户的身高和体重,计算出对应的体重指数,并返回他们的身材状态。

输入描述:

用户的身高(m)和用户的体重(kg)

输出描述:

体重指数对应的身材状态:偏瘦,苗条,适中,偏胖。

示例1

输入:
62.5
1.75
输出:
苗条

💡解决如下:

#include <iostream>
using namespace std;
void Disc(double m,double kg){
    double bmi=kg/(m*m);
    if(bmi>24.9) cout<<"偏胖"<<endl;
    else if(bmi>=20.9) cout<<"适中"<<endl;
    else if(bmi>=18.5) cout<<"苗条"<<endl;
    else cout<<"偏瘦"<<endl;
}
int main(){
    double m,kg;
    cin>>kg;
    cin>>m;
    Disc(m, kg);
    return 0;
}

😎2.3 判断成绩等级

描述

键盘录入一个成绩(整数),判断并输出成绩的等级,如果用户输入成绩不合法(小于0或者大于100)则输出成绩不合法。

90-100 优秀

80-89  良

70-79  中

60-69  及格

0-59   差

输入描述:

输入学生的成绩(整数)

输出描述:

输出成绩对应的等级

90-100 优秀

80-89  良

70-79  中

60-69  及格

0-59   差

如果用户输入成绩不合法(小于0或者大于100)则输出成绩不合法。

示例1

输入:
99
输出:
优秀

💡解决如下:

#include <iostream>
using namespace std;
void Disp(int e){
    if(e>100) cout<<"成绩不合法"<<endl;
    else if(e>=90) cout<<"优秀"<<endl;
    else if(e>=80) cout<<"良"<<endl;
    else if(e>=70) cout<<"中"<<endl;
    else if(e>=60) cout<<"及格"<<endl;
    else if(e>=0)cout<<"差"<<endl;
    else cout<<"成绩不合法"<<endl;
}
int main(){
    int score;
    cin>>score;
    Disp(score);
    return 0;
}

😎2.4 判断季节

描述

键盘录入一个月份 month,判断属于哪个季节。(3 - 5 月为春季、6 - 8 月为夏季、9 - 11 月为秋季、12,1,2 月为冬季)

输入描述:

输入任意一个月份整数,范围在 1 - 12

输出描述:

输出对应月份的季节,3 - 5 月为春季、6 - 8 月为夏季、9 - 11 月为秋季、12,1,2 月为冬季。如果输入的月份不是 1 - 12,则输出“不合法”。

示例1

输入:
3
输出:
春季

💡解决如下:

#include <iostream>
using namespace std;
void Disp(int e){
    if(e==1 || e==2 || e==12) cout<<"冬季"<<endl;
    else if(e>=3 && e<=5) cout<<"春季"<<endl;
    else if(e>=6 && e<=8) cout<<"夏季"<<endl;
    else if(e>=9 && e<=11) cout<<"秋季"<<endl;
    else cout<<"不合法"<<endl;
}
int main(){
    int month;
    cin>>month;
    Disp(month);
    return 0;
}

🌐第三部分 循环语法篇

😎3.1 求 1 - n 之间偶数的和

描述

键盘输入一个 int 类型的正整数 n,n 的范围为[1, 1000],求 1 - n 之间偶数的和,并输出。

输入描述:

输入任意一个 int 类型的正整数,n 的范围为[1, 1000]

输出描述:

输出 1 - n 之间偶数的和

示例1

输入:
4
输出:
6

💡解决如下:

#include <iostream>
using namespace std;
int Add(int n){
    int sum=0;
    for(int i=1;i<=n;i++){
        if(i%2==0) sum+=i;
    }
    return sum;
}
int main() {
    int n;
    cin>>n;
    cout<<Add(n)<<endl;
    return 0;
}

😎3.2 计算一个数的阶乘

描述

键盘录入一个整数 n,求 n 的阶乘。

n 的阶乘为 n * (n - 1) * (n - 2) * ... * 1

例:5 的阶乘为 5 * 4 * 3 * 2 * 1

输入描述:

键盘录入任意一个整数 n ,范围为 1 - 20

输出描述:

输出该数的阶乘

示例1

输入:
5
输出:
120

💡解决如下:

#include <iostream>
using namespace std;
long Func(int n){//递归实现
    if(n==0 || n==1) return 1;
    else return Func(n-1)*n;
}
int main() {
    long n;
    cin >> n;
    cout<<Func(n)<<endl;
    return 0;
}

😎3.3 输出水仙花数

描述

在控制台输出所有的“水仙花数”。

水仙花数是指一个三位数,其各位数字的立方和等于该数本身。

举例:153就是一个水仙花数。

153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153

输入描述:

输出描述:

输出所有的“水仙花数”,每个“水仙花数”占一行,格式如下:

xxx

yyy

zzz

💡解决如下:

#include <iostream>
using namespace std;
void Disp(){
    for(int i=100;i<999;i++){
        int a=int(i/100);//百位数
        int b=int((i%100)/10);//十位数
        int c=i%10;//个位数
        if(i==(a*a*a+b*b*b+c*c*c)) cout<<i<<endl;
    }
}
int main() {
    Disp();
    return 0;
}

😎3.4 打印乘法表

描述

键盘输入一个正整数 n,打印对应的乘法表。

例如键盘输入 3,则打印 3 × 3 乘法表

1 * 1 = 1

1 * 2 = 2    2 * 2 = 4

1 * 3 = 3    2 * 3 = 6    3 * 3 = 9

输入描述:

输入 1 - 9 之间的任意一个正整数 n

输出描述:

输出对应的乘法表。

例如键盘输入 3,则打印 3 × 3 乘法表

1 * 1 = 1

1 * 2 = 2    2 * 2 = 4

1 * 3 = 3    2 * 3 = 6    3 * 3 = 9

要求:数字和符号之间空格隔开,式子和式子之间使用 4 个空格隔开

💡解决如下:

#include <iostream>
using namespace std;
void Disp(int n){
    for(int i=1;i<=n;i++){
        for(int j=1;j<=i;j++){
            cout<<j<<" "<<'*'<<" "<<i<<" = "<<i*j<<"    ";
        }
        cout<<endl;
    }
}
int main() {
    int n;
    cin >> n;
    Disp(n);
    return 0;
}

😎3.5 规律数列求和

描述

有数列为:9,99,999,...,9999999999(10个9)。要求使用循环结构编写程序计算此数列的和,并在控制台输出结果。

输入描述:

输出描述:

该数列的和

💡解决如下:

#include <iostream>
using namespace std;
//赋值
void Value(long  a[],int n){
    long num=9;
    for(int i=0;i<n;i++){
        a[i]=num;
        num=num*10+9;
    }
}
//求和
long SumArr(long a[],int n){
    long sum=0;
    for(int i=0;i<n;i++){
        sum+=a[i];
    }
    return sum;
}
int main() {
    long a[10];
    int n=sizeof(a)/sizeof(a[0]);
    Value(a, n);
    cout<<SumArr(a,n)<<endl;
    return 0;
}

😎3.6 计算小球走过的路程和反弹高度

描述

一球从 h 米高度自由落下,每次落地后反跳回原高度的一半再落下,求它在第 n 次落地时共经过了多少米?第 n 次返弹多高?

输入描述:

输入小球下落的高度和落地的次数(先输入小球初始高度再输入反弹次数)

输出描述:

输出小球第 n 次 落地时经过的距离和第 n 次反弹的高度(保留小数点后1位)

示例1

输入:
100 1
输出:
100.0 50.0

💡解决如下:

#include <ios>
#include <iostream>
#include <iomanip>
using namespace std;
void Disc(double h,double n){
    double sum=0;
    for(double i=0;i<n;i++){
        if(i==0) sum+=h;
        else sum+=2*h;
        h=h/2;
    }
    cout<<fixed<<setprecision(1)<<sum<<" "<<h<<endl;
}
int main() {
    double h,n;
    cin>>h>>n;
    Disc(h,n);
    return 0;
}

😎3.7 判断一个数是不是质数

描述

输入一个大于 1 的整数,判断其是不是质数【质数就是素数】

输入描述:

输入一个大于 1 的整数

输出描述:

输出这个数是否是质数,如果是质数则输出“是质数”,否则输出“不是质数”

示例1

输入:
2
输出:
是质数

💡解决如下:

#include <iostream>
using namespace std;
//判断是否是质数
void Disc(long n){
    for(int i=2;i<=n;i++){
        if(n==2 || i==n){
            cout<<"是质数"<<endl;
            break;
        }
        else {
            if(n%i ==0){
                cout<<"不是质数"<<endl;
                break;
            }
        }
    }
}
int main() {
    long n;
    cin>>n;
    Disc(n);
    return 0;
}

目录
相关文章
|
6月前
|
C语言
带你窥探分支和循环语句全貌——这一篇就够了
带你窥探分支和循环语句全貌——这一篇就够了
15713 1
|
2月前
|
设计模式 JavaScript 算法
编程的奥秘——从代码行中寻找
编程作为现代科技的核心技艺,正在深刻地改变我们的生活、工作乃至思维方式。本文详细介绍了PHP中三种常用的设计模式——单例模式、工厂模式和策略模式。单例模式确保类的唯一实例化,适合管理共享资源;工厂模式封装对象创建过程,降低系统耦合度;策略模式定义算法系列并封装,便于算法切换。合理运用这些模式能显著提升代码质量,使系统更加灵活和易维护。
21 3
|
6月前
火山中文编程 -- 判断循环
火山中文编程 -- 判断循环
44 1
|
6月前
|
JavaScript 前端开发
【JavaScript保姆级教程】switch分支与while循环
【JavaScript保姆级教程】switch分支与while循环
146 0
【JavaScript保姆级教程】switch分支与while循环
|
程序员
相见恨晚的Matlab编程小技巧(2)-代码怎么做到逻辑清晰?——巧用注释符“%“
        本文将以教程的形式详细介绍Matlab中两个常用符号“%”和“%%”的作用。初学者可以通过此文掌握这两个符号的用法,为Matlab编程打下坚实的基础。
|
数据采集 搜索推荐 小程序
编程新手:看懂很多示例,却依然写不好一个程序
当然题目本身难度不高,和我们公众号【每周一坑】栏目里的题相比,这个算是小 case 了。不过如果你是一个刚刚接触编程不久,才掌握条件判断、循环、列表的新手来说,还是有点小挑战的。
|
Java 编译器
编程基础|如何解决编程中的代码错误问题
编程基础|如何解决编程中的代码错误问题
242 0
|
开发工具
游戏开发实战教程(5):重复执行和逻辑循环的区别
将循环分为重复执行和逻辑循环,应该是微信小游戏开发工具中所特有的。因为之前做游戏,无论是使用哪种工具或者哪种编程语言,对于循环来说,都只有一种,不会存在歧义或者误用。但是这里将循环分为了两种,如果误用的话会导致出现一些奇怪的问题。所以需要单独拿出来区分一下,避免掉进这个“坑”。
151 0
|
开发工具
彻底搞清游戏开发中的循环逻辑
循环是游戏开发中一定会用到的逻辑,不论是你想控制移动,或者进行遍历,亦或者不停的去执行某一段逻辑,都需要使用循环。那么对于循环的使用你彻底了解了吗?今天这篇文章就帮助你彻底的弄懂微信小游戏开发中的循环的用法。
171 0
|
开发工具
微信小游戏开发实战5-重复执行和逻辑循环的区别
本篇主要内容包括了解帧的概念,以及理解重复执行和逻辑循环这两种循环积木块之间的区别。 如果你没有任何的游戏开发经验,欢迎阅读我的“人人都能做游戏”系列教程,它会手把手的教你做出自己的第一个小游戏。
112 0