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

运行结果: