day07:分支结构实例

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

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

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

#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;
}

【题目描述】给出三个整数a,b,c(0≤a,b,c≤100),把他们从小到大排序。

输入样例: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;
}

【题目描述】小计买了一箱苹果共有n个,很不幸的是买完时箱子里混进了一条虫子。虫子每小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时这箱苹果中还有多少个苹果没有被虫子吃过?

输入样例:3 2 1
输出样例:2

#include<iostream>
using namespace std;
int main(){
    int n,y;    cin>>n>>y;
    if(n<y){
        cout<<0;
    }else{
        cout<<n-y;
    }
    return 0;
}

【题目描述】在大学校园里,由于校区很大,没有自行车上课办事会很不方便。但实际上,并非去办任何事情都是骑车快,因为骑车总要找车、开锁停车、锁车等,这要耽误一些时间。假设找到自行车、开锁并骑上自行车的时间为27秒,停车锁车的时间为23秒,步行每秒行走1.2米,骑车每秒行走3.0米。
输入距离(单位:米),输出是骑车快还是走路快。
分别用Walk. The same . Bike表示走路快、一样快、自行车快.

输入样例:90 100
输出样例:walk

#include<bits/stdc++.h>
using namespace std;
int main(){
    double length; cin>>length;
    int time1 =27+23+length/3;
    int time2 =length/1.2;
    if(time1>time2){  cout<<"Walk.";  }
    else if(time1<time2){  cout<<"Bike.";  }
    else{  cout<<"The same.";  }
    return 0;
}

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

输入样例:0.5
输出样例:3分钟

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

#include<iostream>
using namespace std;
int main(){
    double money;  cin>>money;
    if(money==0.5){
        cout<<"3分钟";
    }else if(money>0.5){
        int time =3+(money-0.5)/0.2;
        cout<<time<<"分钟";
    }else{  //money<0.5
        cout<<"ERROR";
    }
    return 0;
}

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

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

输入样例:45
输出样例:二位数,十位是:4,个位是:5

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

#include<iostream>
using namespace std;
int main(){
    int a;    cin>>a;
    if(a==0){    cout<<"ERROR";
    }else if(a<10){
        cout<<"一位数,个位是:"<<a; 
    }else if(a<100){
        cout<<"二位数,十位是:"<<a/10<<",个位是:"<<a%10;
    }else if(a<1000){
        cout<<"三位数,百位是"<<a/100<<"十位是:"<<a/10<<",个位是:"<<a%10;
    }
    return 0;
}

补充知识点

fixed<<setprecision(7)  // iomanip  保留小数点后7位
printf("%n.mld",PI);    //输出n个宽度,保留m位小数
字符转数字:int num = (int)’A’;  //num=65
数字转字符:char c = (char)65;  //c = 'A'

#include<bits/stdc++.h> //万能头文件
int num = a>b ? a:b;    //三目运算符: ?:

if(a>b) num = a;
else num=b;

int main() {
    int num;
    cin>>num;// -1 0 1
    switch(num) {
        case -1: printf("-1\n");break; //退出
        case  1: printf("1\n");    break;
        case  0: printf("0\n");    break;
        default: //如果前面没有case执行,就执行 
            printf("ERROR\n");    break;
    }
    return 0;
}