实验作业
1.完成课本每一个编程题。要求先画出流程算法图或N-S图,然后编程实现,有可能的话使用两种以上方法;
2.编程求“百钱百鸡”问题。(鸡翁一值钱五,鸡母 一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?)
3.编程输入一个整数,计算它是几位数字,分别输出每一位数字,并输出各个数位上数字之和。
4.在一个平面上,有四个圆柱形塔,塔底圆心坐标分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),塔半径为1,塔高为10米,塔外无建筑物。编程,输入任一个点平面坐标,求该点建筑物的高度。
5.编程计算s=1!+2!+3!+......n!(其中n为整数,n!表示计算n阶乘),要求使用两种以上的方法。
1
(5)
#include<iostream>
using namespace std;
int main()
{
double e=1.0,c=1.0;
int a;
for(a=1;c<10e6;a++)
{
c*=a;
e+=1/c;
}
cout<<"自然对数为:"<<e<<endl;
return 0;
}
(6)
#include <iostream>
using namespace std;
int main()
{
int a;
double Pi,b;
b=1;
Pi=0;
for(a=1;a<10e6;a+=2)
{
Pi+=4*(double)1/a*b;
b*=-1;
}
cout<<"圆周率为:"<<Pi<<endl;
return 0;
}
(7)
#include<iostream>
using namespace std;
int main()
{
float a;
cout<<"请输入一个数:"<<endl;
cin>>a;
if(a<10)
cout<<a<<"小于10"<<endl;
else
if(10<a&&a<100)
cout<<a<<"在10 到100间"<<endl;
else
if(100<a&&a<1000)
cout<<a<<"在 100 到 1000间"<<endl;
else
if(a>=1000)
cout<<a<<"大于或等于1000"<<endl;
return 0;
}
(8)
#include<iostream>
using namespace std;
int main()
{
cout<<" *"<<endl;
cout<<" * * *"<<endl;
cout<<" * * * * *"<<endl;
cout<<" * * * * * * *"<<endl;
cout<<" * * * * *"<<endl;
cout<<" * * *"<<endl;
cout<<" *"<<endl;
return 0;
}
(9)
#include <iostream>
using namespace std;
int main()
{
int n,s;
n=1;
s=0;
do
{
n++;
s+=n*n;
}while(s<=1000);
cout<<"n="<<n<<endl;
return 0;
}
(10)
#include<iostream>
using namespace std;
int main()
{
double a=100000,b=0.01,d=1,k=0,n=0;
do
{
k=k+a;
n=n+b;
b=b*2;
d++;
}while(d<=30);
cout<<"陌生人给了百万富翁:"<<k<<"元"<<endl
<<"百万富翁给了陌生人:"<<n<<"元"<<endl;
return 0;
}
(11)
#include <iostream>
using namespace std;
int main()
{
int i=1;
int t=1;
while(i<=9)
{
while(t<=i)
{
cout<<t<<"*"<<i<<"="<<i*t<<" ";
t++;
}
t=1;
cout<<endl;
i++;
}
return 0;
}
2
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int i,j,k;
for(i=0;i<=20;i++) //100元最多20只鸡翁
for(j=0;j<=33;j++) //100元最多33只鸡母
for(k=0;k<=99;k+=3) //100元可买很多鸡雏
if(5*i+3*j+k/3==100&&i+j+k==100)
cout<<"鸡翁数量为:"<<i<<"个"<<setw(16)
<<"鸡母数量为:"<<j<<"个"<<setw(16)
<<"鸡雏数量为:"<<k<<"个"<<endl;
return 0;
}
3
#include<iostream>
using namespace std;
int main()
{ int i,a,b,c,d,f;
cout<<"请输入一个整数:"<<endl;
cin>>a;
c=a;
b=0;
f=0;
for(i=0;a>0;i++)
{
a/=10;
b++;
}
cout<<"它有"<<b<<"个数"<<endl;
for(d=0;d<b;d++)
{
f+=c%10;
c=c/10;
}
cout<<"它各个位数上的和为:"<<f<<endl;
return 0;
}
4
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
double x,y,D;
cout<<"横坐标:";
cin>>x;
cout<<"纵坐标:";
cin>>y;
if(x<0)
x=-x;
if(y<0)
y=-y;
D=sqrt((x-2)*(x-2)+(y-2)*(y-2));
if(D<1)
cout<<"塔高为10米"<<endl;
else
cout<<"塔高为0米"<<endl;
return 0;
}
5
(1)
#include<iostream>
using namespace std;
int main()
{
double a,b,n,s=0;
cout<<"请输入一个整数:";
cin>>n;
a=1;
b=1;
while(b<=n)
{
a=a*b;
s+=a;
b++;
}
cout<<"s="<<s<<endl;
return 0;
}
(2)#include<iostream>
using namespace std;
int main()
{
double sum,fact,n,i,d;
sum=0;
cout<<"请输入一个整数:"<<endl;
cin>>n;
for(d=1;d<=n;d++)
{
fact=1;
for(i=1;i<=d;i++)
fact*=i;
sum+=fact;
}
cout<<"s="<<sum<<endl;
return 0;
}