2-28 实现一个简单的菜单程序,运行时显示“Menu:A(dd) D(elete) S(ort) Q(uit),Select one:"提示用户输入。A表示增加,D表示删除,S表示排序,Q表示退出。输入为A、D、S时分别提示
"数据已经增加、删除、排序。"输入为Q时程序结束。
(1)要求使用if...else语句进行判断,用break,continue控制程序流程。
(2)要求使用switch语句。
#include <iostream> using namespace std; int main() {char c; cout <<"Menu:A(dd) D(elete) S(ort) Q(uit),Select one:"<<endl; cin>>c; while(c) { if(c=='A') cout<<"date has been added."<<endl; else if(c=='D') cout<<"date has been deleted."<<endl; else if(c=='S') cout<<"date has been sorted."<<endl; else if(c=='Q') break; else cout<<"error."<<endl; cout <<"Menu:A(dd) D(elete) S(ort) Q(uit),Select one:"<<endl; cin>>c; } return 0; }
运行结果:
#include <iostream> using namespace std; int main() {char c; cout<<"Menu:A(dd) D(elete) S(ort) Q(uit),Select one:"<<endl; cin>>c; while(c!='Q') { switch(c) { case 'A':{cout<<"date has been added."<<endl;break;} case 'D':{cout<<"date has been deleted."<<endl;break;} case 'S':{cout<<"date has been sorted."<<endl;break;} default:cout<<"error."<<endl; } cin>>c; cout <<"Menu:A(dd) D(elete) S(ort) Q(uit),Select one:"<<endl; } return 0; }
运行结果:
2-29 用穷举法找出1~100间的质数并显示出来。分别使用while,do...while,for循环语句实现。
#include <iostream> #include <cmath> using namespace std; int main() {int n=2,t=0; int flag,i; for(n=2;n<=100;n++) {flag=1; for(i=2;i<=sqrt(n);i++) if(n%i==0) {flag=0; break;} if(flag==1) {t++; cout<<" "<<n; if(t%5==0) cout<<endl;} } return 0; }
运行结果:
#include <iostream> #include <cmath> using namespace std; int main() { int n=2,t=0; int flag,i; while(n<=100) {flag=1;i=2; while(i<=sqrt(n)) { if(n%i==0) {flag=0;break;} i++;} if(flag==1) {t++; cout<<n<<" "; if(t%5==0) cout<<endl; } n++; } return 0; }
运行结果:
#include <iostream> #include <cmath> using namespace std; int main() { int n=2,t=0; int flag,i; do {flag=1;i=2; while(i<=sqrt(n)) { if(n%i==0) {flag=0;break;} i++;} if(flag==1) {t++; cout<<n<<" "; if(t%5==0) cout<<endl; } n++; }while(n<=100); return 0; }
运行结果:
2-32 在程序中定义一个整型变量,赋予1~100的值。要求用户猜这个数,比较两个数的大小,把结果提示给用户,直到猜对为止。分别使用while,do...while语句实现的循环。
#include <iostream> using namespace std; int main() {int m=55,number; cout<<"please guess the number from(1-100)"<<endl; cin>>number; while(m!=number) { if(m>number) cout<<"bigger"<<endl; if(m<number) cout<<"smaller"<<endl; cin>>number; } cout<<"right!"<<endl; return 0; }
运行结果:
#include <iostream> using namespace std; int main() {int m=55,number; cout<<"please guess the number from(1-100)"<<endl; cin>>number; do { if(m>number) cout<<"bigger"<<endl; if(m<number) cout<<"smaller"<<endl; cin>>number; }while(m!=number); cout<<"right!"<<endl; return 0; }
运行结果:
2-34 口袋中有红、黄、蓝、白、黑5种颜色的球若干个。每次从口袋中取出3个不同颜色的球,问有多少种取法?
#include <iostream> using namespace std; int main() { int i,j,k; cout<<"red,yellow,blue,white,black"<<endl; for(i=0;i<=4;i++) for(j=i+1;j<=4;j++) for(k=j+1;k<=4;k++) cout<<i<<j<<k<<endl; return 0; }
运行结果: