实践练习二
題2-28:實現一個簡單的菜單程序,運行時顯示“Menu:A(dd) D(elete) S(ort) Q(uit),Select one:”提示用戶輸入。A表示增加,D表示刪除,S表示排序,Q表示退出。
首先,使用if···else語句進行編程:
#include<iostream> using namespace std;int main() //使用if...else語句編譯 {cout << "Menu:A(dd) D(elete) S(ort) Q(uit),Select one:" ;char a;while(cin >> a){if(a == 'A')cout << "數據已經增加" << endl;else if(a == 'D')cout << "數據已經刪除" << endl;else if(a == 'S')cout << "數據已經排序" << endl;else if(a == 'Q')break;}return 0; }得到的結果截圖為
其次,下面是使用switch進行編程
#include<iostream> using namespace std;int main() //使用switch語句編譯 {cout << "Menu:A(dd) D(elete) S(ort) Q(uit),Select one:" ;char a;while(cin >> a){switch(a){case 'A':cout << "數據已經增加" << endl;continue;case 'D':cout << "數據已經刪除" << endl;continue;case 'S':cout << "數據已經排序" << endl;continue;}if(a == 'Q') //因為break放在switch中只能跳出switch,不能所以放在這里用于跳出whilebreak;}return 0; }得到的結果截圖為
題2-29:用窮舉法找出1-100間的質數并顯示
用for循環
#include<iostream> using namespace std;int check(int a) //該函數用于檢查a是否為質數,若是則返回1,否則返回0 {for(int j = 2;j < a;j++){if(a % j == 0) //滿足if則數a不是質數{return 0;}}return 1; }int main() {for(int i = 2;i <= 100;i++){if(check(i))cout << i << " ";}return 0; }得到的代碼截圖為
用while循環
#include<iostream> using namespace std;int check(int a) //該函數用于檢查a是否為質數,若是則返回1,否則返回0 {int j = 2;while(j < a){if(a % j == 0) //滿足if則數a不是質數{return 0;}++j;}return 1; }int main() {int i = 2;while(i <= 100){if(check(i))cout << i << " ";++i;}return 0; }得到的代碼截圖為
使用do···while循環
#include<iostream> using namespace std;int check(int a) //該函數用于檢查a是否為質數,若是則返回1,否則返回0 {int j = 2;do{if(a % j == 0) //滿足if則數a不是質數{if(a == j) //這個if是專門為質數2準備的return 1;return 0;}++j;}while(j < a);return 1; }int main() {int i = 2;do{if(check(i))cout << i << " ";++i;}while(i < 100);return 0; }得到的截圖為
題2-32:在程序中定義一個0-100的整形變量,要求用戶猜這個數
使用while循環
#include<iostream> #include<ctime> #include<cstdlib> using namespace std;int main() {srand(time(0)); //這里用于產生一個隨機數int number=rand()%10;cout<<"猜測一個在0到100間(含0和100)的數字";int guess=101;while (guess!=number){cout<<"\n輸入你的猜測:";int guess;cin>>guess;if(guess==number){cout<<"恭喜你答對了,這個數字就是"<<number;break;}else if(guess>number)cout<<"你猜測的數字大了";elsecout<<"你猜測的數字小了";}return 0;}結果截圖
使用do···while循環
#include<iostream> #include<ctime> #include<cstdlib> using namespace std; int main() {srand(time(0)); //這里用于產生一個隨機數int number=rand()%10;cout<<"猜測一個在0到100間(含0和100)的數字";int guess=101;do{cout<<"\n輸入你的猜測:";int guess;cin>>guess;if(guess==number){cout<<"恭喜你答對了,這個數字就是"<<number;break;}else if(guess>number)cout<<"你猜測的數字大了";elsecout<<"你猜測的數字小了";} while (guess!=number);return 0;}結果截圖
題2-34:口袋中有五種不同顏色的球若干,每次取3個不同顏色的球,問有多少種不同的取法
當取得球沒有順序的時候
#include<iostream> using namespace std;int main() {int number = 0; //number用于記錄有多少種取法 for(int i = 0;i < 5;++i) //摸第一個球 {for(int j = 0;j < i;++j) //摸第二個球 ,并且保證不會出現重復的情況 {if(j == i) //確保第一個球和第二個球不重復 continue;for(int m = 0;m < j;++m) //摸第三個球 ,并且保證不會出現重復的情況 {if(m == i || m == j) //確保第三個球和第一二個球不重復 continue;++number;cout << "i=" << i << " " << "j=" << j << " " << "m=" << m <<endl;}}}cout << number <<endl;return 0; }結果截圖
當取得的球有順序的時候
#include<iostream> using namespace std;int main() {int number = 0; //number用于記錄有多少種取法 for(int i = 0;i < 5;++i) //摸第一個球 {for(int j = 0;j < 5;++j) //摸第二個球 {if(j == i) //確保第一個球和第二個球不重復 continue;for(int m = 0;m < 5;++m) //摸第三個球 {if(m == i || m == j) //確保第三個球和第一二個球不重復 continue;++number;cout << "i=" << i << " " << "j=" << j << " " << "m=" << m <<endl;}}}cout << number <<endl;return 0; }結果截圖
轉載于:https://www.cnblogs.com/MrWang-nextdoor/p/8646343.html
總結
- 上一篇: 蓝桥杯 幸运数
- 下一篇: RocketMQ最佳实战