c/c++练习–08
- 习题来源:C语言经典编程282例
71. 简单计算器
从键盘上输入数据并进行加减乘除四则运算,判断输入的数据能否进行计算,若能则输出运算结果。
#include <iostream>
#include<cctype>
using namespace std;
int main(void){
int a,b;
char ch;
cout<<"输入运算格式:a(+-*/)b"<<endl;
cin>>a>>ch>>b;
switch(ch){
case '+':cout<<a+b<<endl;break;
case '-':cout<<a-b<<endl;break;
case '*': cout<<a*b<<endl;break;
case '/': if(b!=0)cout<<"a/b="<<a/b<<endl;
else cout<<"除数不能为0"<<endl;break;
default:break;
}
return(0);
}
72. 使用while求n的阶乘
#include <iostream>
#include<cctype>
using namespace std;
int main(void){
int num,i=2;
long sum=1;
cout<<"输入一个整数:"<<endl;
cin>>num;
while(i<=num){
sum*=i;
i++;
}
cout<<sum<<endl;
return(0);
}
73. 使用while为用户提供菜单显示
#include <iostream>
#include<cctype>
using namespace std;
int main(void){
int num;
while(cin>>num){
cout<<"******************** Menu ******************"<<endl;
cout<<"**************Sell****************1********"<<endl;
cout<<"**************Buy****************2********"<<endl;
cout<<"**************ShowProduct******3********"<<endl;
cout<<"**************Qiut****************4********"<<endl;
if(num==1)cout<<"您选择的是shell"<<endl;
if(num==2)cout<<"您选择的是Buy"<<endl;
if(num==3)cout<<"您选择的是ShowProduct"<<endl;
if(num==4){
cout<<"您选择的是Quit"<<endl;
break;
}
}
return(0);
}
74.一元钱的兑换方案
如果将整钱换成零钱,那么一元钱可兑换成1角,2角或5角,问有多少种兑换方案。
#include <iostream>
#include<cctype>
using namespace std;
int main(void){
for(int i=0;i<=10;i++)
for(int j=0;j<6;j++)
for(int k=0;k<3;k++)
if(i+2*j+5*k==10)
cout<<"1角:"<<i<<" 2角:"<<j<<" 5角:"<<k<<endl;
return(0);
}
75. 特殊等式
有这样一个等式,xyz+yzz=532,求x,y,z
#include <iostream>
#include<cctype>
using namespace std;
int main(void){
for(int i=0;i<10;i++)
for(int j=0;j<10;j++)
for(int k=0;k<10;k++)
if(i*100+j*10+k+j*100+k*11==532)
cout<<" "<<i<<" "<<j<<" "<<k<<endl;
return(0);
}
76.打印乘法口诀表
#include <iostream>
#include<cctype>
using namespace std;
int main(void){
for(int i=1;i<10;i++){
for(int j=1;j<i+1;j++)
cout<<i<<'*'<<j<<'='<<i*j<<'\t';
cout<<endl;
}
return(0);
}
77.平方和运算的问题
任意给出一个自然数k,数k不为0,计算其各位数字的平方和k1,在计算k1的各位数字的平方和k2…,重复次过程,最终得到数1或145,此时在做数的平方和运算,最终结果将始终是1或145
#include <iostream>
#include<cctype>
using namespace std;
int main(void){
int m[10],num,i=0,sum=0;
cout<<"请输入一个整数:"<<endl;
cin>>num;
while(num !=1 && num != 145){
cout<<num<<'=';
while(num){
m[i] = num%10;
num /= 10;
sum += m[i]*m[i];
cout<<m[i]<<'*'<<m[i]<<'+' ;
i++;
}
num =sum;
sum=0;
i=0;
cout<<endl;
}
return(0);
}
78. 求从键盘中输入字符的个数
#include <iostream>
#include<cctype>
using namespace std;
int main(void){
char ch;
int n=0;
while(cin>>ch){
n++;
}
cout<<"共计输入字符个数为:"<<n<<endl;
return(0);
}
79. 打印杨辉三角
#include <iostream>
using namespace std;
int main(void){
int num[11][11]={0};
for(int i=0;i<10;i++){
num[i][0] = 1;
num[i][i] = 1;
}
for(int i=2;i<10;i++)
for(int j=1;j<i;j++)
num[i][j] = num[i-1][j]+num[i-1][j-1];
for(int i=0;i<10;i++){
for(int j=0;j<=i;j++)
cout<<num[i][j]<<'\t';
cout<<endl;
}
return(0);
}
80.求总数问题
集邮爱好者把所有所有邮票存放在3个集邮册中,在A册内存放全部的2/10,在B册内存放不知道是全部的七分之几,在C册内存放303张邮票,问这位集邮爱好者总数是多少,以及每册中各有多少邮票?
#include <iostream>
using namespace std;
int main(void){
int a,b,c,sum;
for(int i=1;i<=5;i++){
if(10605%(28-5*i)==0){
sum = 10605/(28-5*i);
a = 2*sum/10;
b=5*sum/7;
c=303;
cout<<"总计:"<<sum<<endl;
cout<<"A:"<<a<<endl;
cout<<"B:"<<b<<endl;
cout<<"C:"<<c<<endl;
}
}
return(0);
}