您的位置:首页 > 编程语言 > C语言/C++

C++程序设计(第2版)课后习题答案--第4章

2012-12-13 16:19 543 查看
C++程序设计(第2版)课后习题答案--第4章 控制结构

View Code

//4.10  设计一个程序,输入实型变量x和y,若x>y,则输出 x-y;若x<y,则输出 y-x。
#include <iostream.h>
#include <stdio.h>
void main()
{
int x,y;
printf("请输入两个数,中间用空格隔开:\n");
cin>>x>>y;
if(x>y)
cout<<x-y<<endl;
else
cout<<y-x<<endl;
}
// 4.11
#include <iostream.h>
#include <stdio.h>
#include <math.h>
void main()
{
int x,i,j,b,c,d,e;
int a=0;
printf("请输入一个数:\n");
cin>>x;
b=x;
while(b>0)
{
i=b%10;
b=b/10;
a++;
}
cout<<"输入数为"<<a<<"位数"<<endl;
printf("输入数的每一位数为:\n");
c=x;
while(c>0&&a>0)
{
d=c/pow(10,(a-1));
c-=d*pow(10,(a-1));
cout<<d<<endl;
a--;
}
cout<<"与输入数逆序为:"<<endl;
while(x>0)
{
j=x%10;
x/=10;
cout<<j;
}
cout<<endl;
}

// 4.12
#include <iostream.h>
void main()
{
float i,j,a,b;
cout<<"请输入若干个数,中间用空格隔开,并以“.”号结束"<<endl;
cin>>i>>j;
while(i>0&&j>0){
if (i>j)
{
cin>>j;
a=i;
}
else
{
cin>>i;
b=j;
}
}
if(a>b)
cout<<a<<endl;
else
cout<<b<<endl;
}

// 4.13
#include <iostream.h>
void main()
{
float a,b,c;
cout<<"请输入若3个数,中间用空格隔开"<<endl;
cin>>a>>b>>c;
if(a+b>c&&a+c>b&&b+c>a)
cout<<"这三个数能构成三角形的三边"<<endl;
else
cout<<"这三个数不能构成三角形的三边"<<endl;
}

// 4.14
#include <iostream.h>
void main()
{
int a,b,c;
cout<<"请输入若3个数,中间用空格隔开"<<endl;
cin>>a>>b>>c;
if(a+b>c&&a+c>b&&b+c>a)
cout<<"这三个数能构成三角形的三边"<<endl;
else
cout<<"这三个数不能构成三角形的三边"<<endl;
}

// 4.15
#include <iostream.h>
void main()
{
int i,j;
int a=1;
cout<<"二进制"<<'\t'<<"十进制"<<'\t'<<"八进制"<<'\t'<<"十六进制"<<endl;
for(;a<=156;a++)
{
i=a;
while (i>0)
{
j=i%2;i=i/2;
cout<<j;
}
cout<<'\t'<<dec<<a<<'\t'<<oct<<a<<'\t'<<hex<<a<<endl;
}

}
// 4.16
#include <iostream.h>
void main()
{
int a,b,c,d;
int max1,max2,min1,min2;
cout<<"请输入四个数"<<endl;
cin>>a>>b>>c>>d;
if(a>b)
{
max1=a;
min1=b;
}
else
{
max1=b;
min1=a;
}
if(c>d)
{
max2=c;
min2=d;
}
else
{
max2=d;
min2=c;
}
cout<<"这四个数由大到小的排列顺序为:"<<endl;
if(max1>max2)
{
cout<<max1<<" ";
if(min1>min2)
{
if(max2>min1)
cout<<max2<<" "<<min1<<" "<<min2<<endl;
else
if(max2>min2)
cout<<min1<<" "<<max2<<" "<<min2<<endl;
else
cout<<min1<<" "<<min2<<" "<<max2<<endl;
}
else
{
if(max2>min2)
cout<<max2<<" "<<min2<<" "<<min1<<endl;
else
if(max2>min1)
cout<<min2<<" "<<max2<<" "<<min1<<endl;
else
cout<<min2<<" "<<min1<<" "<<max2<<endl;
}
}
else
{
cout<<max2<<" ";
if(min1>min2)
{
if(max1>min1)
cout<<max1<<" "<<min1<<" "<<min2<<endl;
else
if(max1>min2)
cout<<min1<<" "<<max1<<" "<<min2<<endl;
else
cout<<min1<<" "<<min2<<" "<<max1<<endl;
}
else
{
if(max1>min2)
cout<<max1<<" "<<min2<<" "<<min1<<endl;
else
if(max1>min1)
cout<<min2<<" "<<max1<<" "<<min1<<endl;
else
cout<<min2<<" "<<min1<<" "<<max1<<endl;
}
}

}
// 4.17
#include <iostream.h>
void main()
{
cout<<"请按照下面方程的格式,分别输入六个参数,中间用空格隔开"<<endl;
cout<<"a1x+b1y=c1"<<endl<<"a2x+b2y=c2"<<endl;
float a1,a2,b1,b2,c1,c2,x,y;
cout<<"请按顺序输入 a1,b1,c1,a2,b2,c2"<<endl;
cin>>a1>>b1>>c1>>a2>>b2>>c2;
x=(b2*c1-b1*c2)/(a1*b2-a2*b1);
y=(a2*c1-a1*c2)/(a2*b1-a1*b2);
cout<<"x="<<x<<endl;
cout<<"y="<<y<<endl;
}
// 4.18
#include <iostream.h>
void main()
{
cout<<"请输入一个百分制的成绩"<<endl;
int a;
cin>>a;
if(a<0||a>100)
{
cout<<"你输入一个错误的数字,请重新输入"<<endl;
}
switch(a/10)
{
case 9:
cout<<"A"<<endl;
break;
case 8:
cout<<"B"<<endl;
break;
case 7:
cout<<"C"<<endl;
break;
case 6:
cout<<"D"<<endl;
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:
cout<<"E"<<endl;
break;
}
}

//  4.19
#include <iostream.h>
void main()
{
cout<<"请输入一个正整数"<<endl;
int a,b;
int c=0;
cin>>a;
int i=2;
cout<<"该正数的因子为:"<<endl;
for(;i<=a;i++)
{
b=c;
if(a%i==0)
c=a/i;
if(c!=b)
cout<<c<<endl;
}

}
//  4.20
#include <iostream.h>
void main()
{
cout<<"请输入一个正整数"<<endl;
int a,i;
int sum=0;
cin>>a;
for (;a>0;)
{
i=a%10;
sum+=i;
a/=10;
}
cout<<"这个正整数的各位数字的和为:"<<sum<<endl;
}

//  4.21
#include <iostream.h>
#include <stdio.h>
void main()
{
int a=2;
int b=1;
float sum=0;
for(int i=1;i<=20;i++){
sum+=(float)(a)/b;
int c;
c=a+b;
b=a;
a=c;
}
cout<<"数列的和为:"<<sum<<endl;
}

//  4.22
#include <iostream.h>
void main()
{
int a,b,c,sum;
for(int i=100;i<1000;i++)
{
a=(i/100)%10;b=(i/10)%10;c=i%10;
sum=a*a*a+b*b*b+c*c*c;
if(sum==i)
cout<<"水仙花数为:"<<sum<<endl;
}
}

//  4.23
#include <iostream.h>
void main()
{
int b;
int a=1;
cout<<"1000以内的完数为:"<<endl;
while(a<1000)
{
int sum=0;
for(int i=2;i<=a;i++)
{
int c=0;
b=c;
if(a%i==0)
c=a/i;
if(c!=b)
sum+=c;
}
if(sum==a)
cout<<sum<<endl;
a++;
}
}

//  4.24
#include <iostream.h>
void main()
{
float d;
float a=0;
float b=1;
float c=2;
cout<<a<<endl<<b<<endl<<c<<endl;
for(int n=3;n<=19;n++)
{
d=b*c+a;
a=b;
b=c;
c=d;
cout<<c<<endl;
}
}

//  4.25
#include <iostream.h>
void main()
{
float c,F;
cout<<"请输入一个华氏度"<<endl;
cin>>F;
c=(F-32)*5/9;
cout<<"这个华氏度所对应的摄氏度为:"<<c<<endl;
}
4.26
//  4.26
#include <iostream.h>
void main()
{
int i;
int a=1;
int sum=0;
cout<<"请输入若干个整数,中间用空格隔开"<<endl;
cin>>i;
while(i>=0)
{
sum+=i;
cin>>i;
cout<<"sum="<<sum<<' '<<a<<endl;
a++;
}
}
// 4.27
#include <iostream.h>
void main()
{
cout<<" C++程序设计   p103 4.27   第一个图"<<endl<<endl;
for(int i=1;i<=10;i++)
{
for(int j=1;j<=i;j++)
cout<<'*';
cout<<endl;
}
cout<<endl<<" C++程序设计   p103 4.27 第二个图"<<endl<<endl;
for (int a=1;a<=10;a++)
{
for(int b=10;b>=a;b--)
cout<<'*';
cout<<endl;
}
cout<<endl<<" C++程序设计   p103 4.27 第三个图"<<endl<<endl;
for (int c=1;c<=10;c++)
{
for(int d=1;(c-d)>0;d++)
cout<<" ";
for(int e=10;e>=c;e--)
cout<<'*';
cout<<endl;
}
cout<<endl<<" C++程序设计   p103 4.27 第四个图"<<endl<<endl;
for (int f=1;f<=10;f++)
{
for(int g=10;g>=f;g--)
cout<<" ";
for(int h=1;(f-h)>=0;h++)
cout<<'*';
cout<<endl;
}
cout<<endl<<" C++程序设计   p103 4.27 四个图并排输出"<<endl<<endl;
// while的用法和for差不多,最后一个就用while,做一遍
int x=1;
while(x<=10)
{
int a1=1;
while(a1<=x)
{
cout<<'*';
a1++;
}
int b1=10;
while(b1>=x)
{
cout<<" ";
b1--;
}
int b2=10;
while(b2>=x)
{
cout<<'*';
b2--;
}
int a2=1;
while(a2<=x)
{
cout<<" ";
a2++;
}
int a3=1;
while(a3<=x)
{
cout<<" ";
a3++;
}
int b3=10;
while(b3>=x)
{
cout<<'*';
b3--;
}
int b4=10;
while(b4>=x)
{
cout<<" ";
b4--;
}
int a4=1;
while(a4<=x)
{
cout<<'*';
a4++;
}
x++;
cout<<endl;
}
cout<<endl;
}
// 4.28
#include <iostream.h>
int main()
{
char A,B,C;
int count=1;
for(A='X';A<='Z';A++)
for(B='X';B<='Z';B++)
for(C='X';C<='Z';C++)
if((A!=B && B!=C && C!=A) && (C!='Y') && (A!='X'))
{
cout<<"第"<<count<<"种名单:"<<endl;
cout<<"A-"<<A<<endl;
cout<<"B-"<<B<<endl;
cout<<"C-"<<C<<endl;
count++;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: