3.9习题补充
1.设圆的半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球的表面积、圆球的体积、圆柱体积,用cin输入数据,输出计算结果,输出时要有文字说明,取小数点后两位
//
// main.cpp
// Chapter 3_1
//设圆的半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球的表面积、圆球的体积、圆柱体积,用cin输入数据,输出计算结果,输出时要有文字说明,取小数点后两位
// Created on 14.12.23.
//
#include
#include
using namespace std;
int main(int argc, const char * argv[])
{
float r=0,h=0;
cout<<"请输入半径:"<>r;
cout<<"请输入圆柱的高:"<>h;
float c1=0;//圆周长
float s1=0;//圆面积
float s2=0;//圆球的表面积
float v1=0;//圆球体积
float v2=0;//圆柱体积
c1=2*(3.14)*r;
s1=3.14*r*r;
s2=4*3.14*r*r;
v1=4/3*3.14*r*r*r;
v2=h*s1;
cout<
2.输入一个华氏温度,要求输出摄氏温度,公式次c=5/9(F-32),输出要有文字说明,取两位小数
//
// main.cpp
// Chapter 3_3
//输入一个华氏温度,要求输出摄氏温度,公式次c=5/9(F-32),输出要有文字说明,取两位小数
// Created on 14.12.23.
//
#include
#include
using namespace std;
int main()
{
float F=0;//华氏摄氏度
cout<<"华氏摄氏度是:"<>F;
float c=0;//摄氏度
c=5*(F-32)/9;
cout<<"摄氏度是:"<
3.用getchar函数读入两个字符给c1,c2,然后分别用putchar函数和cout语句输出这两个字符
//
// main.cpp
// Chapter 3_3
//用getchar函数读入两个字符给c1,c2,然后分别用putchar函数和cout语句输出这两个字符
// Created on 14.12.23.
//
#include
using namespace std;
int main()
{
char c1,c2;
c1=getchar();
c2=getchar();
putchar(c1);
cout<<" "<
答案:输入的两个字符中不能有空格,否则c2输出是空格
有空格的情况
4.有3个整数,a、b、c,由键盘输入,输出其最大值
//
// main.cpp
// Chapter 3_4
//有3个整数,a、b、c,由键盘输入,输出其最大值
// Created on 14.12.23.
//
#include
using namespace std;
int main()
{
int a=0,b=0,c=0,i=0;
cout<<"请输入三个要比较的数:"<>a>>b>>c;
if(a>b)
{
if(a>c)
cout<<"最大数是:"<c)
{
cout<<"最大数是:"<
5.给一个百分制成绩,要求输出'A' 'B' 'C' 'D' 'E' ,90分以上为'A',80~90分为'B',70~79分为'C',60~69分为'D',60分以为下'E'
//
// main.cpp
// Chapter 3_5
//给一个百分制成绩,要求输出'A' 'B' 'C' 'D' 'E' ,90分以上为'A',80~90分为'B',70~79分为'C',60~69分为'D',60分以为下'E'
// Created on 14.12.23.
//
#include
using namespace std;
int main()
{
int grade=0;
cout<<"请输入成绩:"<>grade;
if(grade<+100 && grade>90)
cout<<'A'<=80)
cout<<'B'<=70)
cout<<'C'<=60)
cout<<'D'<=0 && grade<=60)
cout<<'E'<
6.给一个不多余5位的正整数,要求:a:求出它是几位数,b:分别打印出每一位数字,c:按逆序打印出各位数字,例如原是321,应输出123
//
// main.cpp
// Chapter 3_6
//给一个不多余5位的正整数,要求:a:求出它是几位数,b:分别打印出每一位数字,c:按逆序打印出各位数字,例如原是321,应输出123
// Created on 14.12.23.
//
#include
using namespace std;
int main()
{
int a=0;
int n=0,i=0;//位数,每一位数,
int t=0,h=0,m=0,j=0,k=0;
int d=0;
cout<<"请输入此数:"<>a;
t=a/10000;//个位
h=a/1000%10;//十位
m=a/100%10;
j=a/10%10;
k=a%10;
cout<<"从右到左每一位是:";
while(a!=0 && a>0)
{
i=a%10;
a=a/10;
cout<<" ";
cout<
7.输入4个整数,要求由小到大的顺序排出
//
// main.cpp
// Chapter 3_7
//输入4个整数,要求由小到大的顺序排出
// Created on 14.12.23.
//
#include
using namespace std;
int main()
{
int i=0,j;
int a[4];//此处用了数组
int n=0;
for(i=0;i<4;i++)
{
cin>>a[i];
}
for(i=0;i<3;i++)
{
for(j=1+i;j<4;j++)//j=i+1,当i=2时,就不用重复与前面那个进行比较了
{
if(a[i]>a[j])
{
n=a[i];
a[i]=a[j];
a[j]=n;
}
}
}
cout<<"正确顺序是:";
for(i=0;i<4;i++)
{
cout<
8.输入两个正整数m和n,求其最大的公约数和最小公倍数
//
// main.cpp
// Chapter 3_8
//输入两个正整数m和n,求其最大的公约数和最小公倍数
// Created on 14.12.23.
//
#include
using namespace std;
int main()
{
int m=0,n=0,i=0;
int x=0,y=0;
int max=0,min=0;
cout<<"输入要求的两个数:";
cin>>m>>n;
x=m;
y=n;
while(n!=0)//辗转相除法
{
i=m%n;
m=n;
n=i;
max=m;
}
min=x*y/max;
cout<<"最大公约数是:"<
答案
9.输入一行字符,分别统计出英文字母,空格,数字,和其他字符的个数
//
// main.cpp
// Chapter 3_9
//输入一行字符,分别统计出英文字母,空格,数字,和其他字符的个数
// Created on 14.12.23.
//
#include
using namespace std;
int main()
{
char c;
int x1=0,x2=0,x3=0,x4=0;
while((c=getchar())!='\n')
{
if((c>=65 && c<=90) || (c>=97 && c<=122))
x1++;
else if(c==32)
x2++;
else if(c>=48 && c<=57)
x3++;
else
x4++;
}
cout<<"英文字母有:"<<" "<
10.求 Sn=a+aa+aaa+···+aa···a(n个a),其中,a是一个数字,例如:2+22+222+2222+22222(此时n=5),n由键盘输入
//
// main.cpp
// Chapter 3_10
//求 Sn=a+aa+aaa+···+aa···a(n个a),其中,a是一个数字,例如:2+22+222+2222+22222(此时n=5),n由键盘输入
// Created on 18.12.23.
//
#include
using namespace std;
int main()
{
int n=0,Sum=0,m=0;
cout<<"需要计算的位数是:";
cin>>n;
int a=2;
int i=1;
for(;i<=n;i++)
{
m=m+a; //最初的加数从1个个位a开始。
Sum=Sum+m; //累加的基本表达式。
if(i
11.求1到20的阶层
//
// main.cpp
// Chapter 3_11
//求1到20的阶层
// Created on 18.12.23.
//
#include
using namespace std;
int main()
{
int n=1;
int Sum=0;
for(n=1;n<21;n++)
{
n=1*n;
if(n<20)
{
cout<
12.输出所有的“水仙花数”,所谓的“水仙花数”就是指一个3位数,其各位数立方和等于数本身,例如:153是一个水仙花数,因为153=1^3+5^3+3^3.
//
// main.cpp
// Chapter 3_12
//输出所有的“水仙花数”,所谓的“水仙花数”就是指一个3位数,其各位数立方和等于数本身,例如:153是一个水仙花数,因为153=1^3+5^3+3^3.
// Created on 18.12.23.
//
#include
using namespace std;
int main()
{
int n=100,i=0;
int hundred=0;//百位
int tens=0;//十位
int ones=0;//个位
for(n=100;n<1000;n++)
{
hundred=n/100;
tens=n%100/10;
ones=n%10;
if(n == hundred*hundred*hundred+tens*tens*tens+ones*ones*ones)
{
cout<
13.一个数如果恰好等于他的因子之和,这个数就称为“完数”,例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”,编程找出1000内的所有数,并且按以下格式输出:6,its factors are 1,2,3
//
// main.cpp
// Chapter 3_13
//一个数如果恰好等于他的因子之和,这个数就称为“完数”,例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”,编程找出1000内的所有数,并且按以下格式输出:6,its factors are 1,2,3
// Created on 19.12.23.
//
#include
using namespace std;
int main()
{
int n=2;
for(;n<1001;n++)
{
int sum=1;
for(int i=2;i<=n/2;i++)
if(n%i==0)
{
sum =sum+i;
if(sum==n)
{
cout<
14.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13,·····求出这个数列的前20项之和
//
// main.cpp
// Chapter 3_15
//有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13,·····求出这个数列的前20项之和
// Created on 19.12.23.
//
#include
using namespace std;
int main()
{
int n=1;
int sum=0;
for(;n<21;n++)
{
sum=sum+(n+1)/n;
cout<
答案:
15.猴子吃桃问题,猴子第1 天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将是剩下的吃掉一半,又多吃了一个,以后每天早上都吃了前一天的剩下的一半另加一个,到第十天早上想再吃,就只剩下一个桃子了,求第一天共摘了多少个桃子。
//
// main.cpp
// Chapter 3_15
//猴子吃桃问题,猴子第1天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将是剩下的吃掉一半,又多吃了一个,以后每天早上都吃了前一天的剩下的一半另加一个,到第十天早上想再吃,就只剩下一个桃子了,求第一天共摘了多少个桃子。
// Created on 19.12.23.
//
#include
using namespace std;
int main()
{
int i=1,m=0;
for(int n=9;n>0;n--)
{
m=(i+1)*2;
i=m;
}
cout<<"第一天有桃子:"<
16.用迭代法求x=a^ 1/2,求平方根的迭代公式为Xn+1=1/2(Xn+a/Xn),要求前后两次求出的X的差值的绝对值小于10^ (-5)
//
// main.cpp
// Chapter 3_16
//用迭代法求x=a^ 1/2,求平方根的迭代公式为Xn+1=1/2(Xn+a/Xn),要求前后两次求出的X的差值的绝对值小于10^ (-5)
// Created on 19.12.23.
//
#include
#include
using namespace std;
int main()
{
float a;
cout<<"请输入a的值:";
cout<>a;
float x=sqrt(a);
float x1=0;
x1=(x+a/x)/2;
if(1/(x-x1)<(10*10*10*10*10) || 1/(x-x1)>-(10*10*10*10*10))//把10^ (-5)与两次求出的X的差值做了一个位置调换
{
cout<
17.输出以下图案
*
* * * *
* * * * * *
* * * * * * * *
* * * * * *
* * * *
*
//
// main.cpp
// Chapter 3_17
//输出以下图案
//*
//* * * *
//* * * * * *
//* * * * * * * *
//* * * * * *
//* * * *
//*
// Created on 19.12.23.
//
#include
using namespace std;
int main()
{
int i;
for(i=1;i<5;i++)
{
int j=1;
if (i==5)
break;
for(;j<=i*4;j++)
{
if(i==1)
{
cout<<"*"<=0;m--)
{
int n=1;
if(m==0)
break;
for(;n<=n*4;n++)
{
if(n%2==0 && n!=m*4)
{
cout<<" ";
}
else if(m==1 & n==1)
{
cout<<"*"<
答案:
共同学习,欢迎指正!