day07:分支結構實例
1. apples
【題目描述】題目描述
八尾勇喜歡吃蘋果。她今天吃掉了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;
}
2. 給出三個整數從小到大排序
【題目描述】給出三個整數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;
}
3. 蟲子吃蘋果
【題目描述】小計買了一箱蘋果共有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;
}
4. 校園出行
【題目描述】在大學校園里,由於校區很大,沒有自行車上課辦事會很不方便。但實際上,並非去辦任何事情都是騎車快,因為騎車總要找車、開鎖停車、鎖車等,這要耽誤一些時間。假設找到自行車、開鎖並騎上自行車的時間為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;
}
5. IC卡電話計費
【題目描述】某市的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;
}
6. 輸入一個不多於三位的正整數,求出它是幾位數
【題目描述】輸入一個不多於三位的正整數,求出它是幾位數,
並分別打印出各位上的數字。如果輸入錯誤,輸出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;
}