1.7 分支结构实例

1.7 分支结构实例

P5712 【深基3.例4】Apples

题目描述

八尾勇喜欢吃苹果。她今天吃掉了 \(x\) 个苹果。英语课上学到了 apple 这个词语,想用它来造句。如果她吃了 1 个苹果,就输出 Today, I ate 1 apple.;如果她没有吃,那么就把 1 换成 0;如果她吃了不止一个苹果,别忘了 apple 这个单词后面要加上代表复数的 s。你能帮她完成这个句子吗?

输入格式: 输入一行一个自然数 \(x\),表示吃掉的苹果数。

输出格式: 根据题目要求输出。

输入样例: 1
输出样例: Today, I ate 1 apple.

输入样例: 3
输出样例: Today, I ate 3 apples.

提示: 对于所有数据,\(0\le x \le 100\)

#include<iostream>
using namespace std;
int main(){
    int x;  cin>>x;
    cout<<"Today, I ate "<<x;
    if(x<=1){
        cout<<" apple.";
    }else{
        cout<<" apples.";
    }
    return 0;
}

P5715 【深基3.例8】三位数排序

题目描述

给出三个整数 \(a,b,c(0\le a,b,c \le 100)\),要求把这三位整数从小到大排序。

输入格式: 输入三个整数 \(a,b,c\),以空格隔开。
输出格式: 输出一行,三个整数,表示从小到大排序后的结果。

输入样例: 1 14 5
输出样例: 1 5 14

#include<iostream>
using namespace std;
int main(){
    int a,b,c;  cin>>a>>b>>c;
    if(a>b){  int t=a;  a=b;  b=t;  } //如果a>b ,就交换a,b
    if(a>c){  int t=a;  a=c;  c=t;  }
    if(b>c){  int t=b;  b=c;  c=t;  }
    cout<<a<<" "<<b<<" "<<c;
    return 0;
}

P5709 【深基2.习6】Apples Prologue / 苹果和虫子

题目描述

八尾勇喜欢吃苹果。她现在有 \(m\)\(1 \le m \le 100\))个苹果,吃完一个苹果需要花费 \(t\)\(0 \le t \le 100\))分钟,吃完一个后立刻开始吃下一个。现在时间过去了 \(s\)\(1 \le s \le 10000\))分钟,请问她还有几个完整的苹果?

输入格式: 输入三个非负整数表示 \(m, t, s\)
输出格式: 输出一个整数表示答案。

输入样例: 50 10 200
输出样例: 30

提示:如果你出现了 RE,不如检查一下被零除?

#include<iostream>
#include<cmath>
using namespace std;

int main() {
    int m,t,s; cin>>m>>t>>s;
    if(t==0){
        m = 0;
    } else {
        m -= ceil((double)s/t);
    }
    if(m<0)  m = 0;
    cout<<m;
    return 0;
}

4. 校园出行

题目描述

在大学校园里,由于校区很大,没有自行车上课办事会很不方便。但实际上,并非去办任何事情都是骑车快,因为骑车总要找车、开锁停车、锁车等,这要耽误一些时间。

假设找到自行车、开锁并骑上自行车的时间为 27秒,停车锁车的时间为 23秒,步行每秒行走 1.2米,骑车每秒行走 3.0米。

输入格式: 输入距离(单位:米),输出是骑车快还是走路快。
输出格式: 分别用 Walk. The same. Bike. 表示走路快、一样快、自行车快.

输入样例: 90
输出样例: Walk.

#include<iostream>
using namespace std;
int main() {
    double length; cin>>length;        //距离
    double time1 = (27+23+length/3.0); //骑车所需要时间
    double time2 = (length/1.2);       //步行所需要时间
    if(time1 > time2) {                //谁花的时间少,谁就快
        cout<<"Walk.";
    } else if(time1 < time2) {
        cout<<"Bike.";
    } else {       //time1==time2; double类型不要使用==判断相等
        cout<<"The same.";
    }
    return 0;
}
// 思考:多远所需要时间相同?
// time1==time2
// (27+23+length/3.0) == (length/1.2)

5. IC卡电话计费

题目描述

某市的IC卡电话计费标准如下:
首次为 0.5元/3分钟(不足3分钟按3分钟计费),之后是 0.2元/1分钟。
已知某人打一次电话花费为 x 元,问这个人有可能打了多长时间的电话?
输入 x,输出时间(精确到分钟),如果输入错误,输出 "ERROR"。

输入样例: 0.5
输出样例: 3 minute

输入样例: 0.3
输出样例: ERROR

#include <iostream>
using namespace std;

int main() {
    double x; cin>>x;
    if(x<0.5) {
        cout<<"ERROR";
    } else {
        cout<<(x-0.5)/0.2+3<<" minute";
    }
    return 0;
}

6. 输入一个不多于三位的正整数,求出它是几位数

题目描述
输入一个不多于三位的正整数,求出它是几位数,并按照样例打印出各位上的数字。
如果输入错误,输出ERROR.

输入样例: 5
输出样例: 一位数,依次是:5

输入样例: 45
输出样例: 二位数,依次是:4 5

输入样例: 0
输出样例: ERROR

#include<iostream>
using namespace std;

int main() {
    int n; cin>>n;
    if(n<=0 || n>999) {
        cout<<"ERROR";
    } else {
        if(n<10) {
            cout<<"一位数,依次是:"<<n;
        } else if(n<100) {
            cout<<"二位数,依次是:"<<n/10<<" "<<n%10;
        } else {
            cout<<"三位数,依次是:"<<n/100<<" "<<n/10%10<<" "<<n%10;
        }
    }
    return 0;
}

补充知识

#include<bits/stdc++.h> //万能头文件
fixed<<setprecision(7)  // iomanip  保留小数点后7位

scanf("%d", &n);        // 输入并赋值给 n
printf("%d\n", n);      // 输出 n,并换行
printf("%n.mlf",PI);    //输出 n 个宽度,保留 m 位小数

             char ch = '9'; int num=9;
数字字符转数字:num = ch - '0';
数字转数字字符:ch = num + '0';

三目运算符

int num = a>b ? a:b;    //三目运算符: ?:
// 相当于如下代码的功能
if(a>b) num = a;
else num=b;

开关语句:switch

#include<bits/stdc++.h> //万能头文件
using namespace std;

int main() {
    int num; cin>>num;// -1 0 1
// 将 case后的元素与switch(num)中传入的num进行比对,相同就执行
    switch(num) {
        case -1: cout<<-1;   break; //退出
        case  1: cout<<1;    break;
        case  0: cout<<0;    break;
        default: //如果前面没有case执行,就执行
            cout<<"ERROR";    break;
    }
    return 0;
}

星期几

题目描述

我们知道一周有七天,现在给你数字 1~7,分别对应星期一到星期天,请你输出他们的英文。

星期一到星期天的英文是:Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday。

输入格式: 一个整数
输出格式: 一个字符串
输入样例: 2
输出样例: Tuesday

#include <iostream>
using namespace std;

int main() {
    int n; cin>>n;
    switch(n){
        case 1: cout<<"Monday";     break;
        case 2: cout<<"Tuesday";    break;
        case 3: cout<<"Wednesday";  break;
        case 4: cout<<"Thursday";   break;
        case 5: cout<<"Friday";     break;
        case 6: cout<<"Saturday";   break;
        case 7: cout<<"Sunday";     break;
        default: cout<<"ERROR";     break;
    }
    return 0;
}
posted @ 2021-08-13 16:53  HelloHeBin  阅读(826)  评论(0编辑  收藏  举报