第四周作业
2014-04-02 21:47
176 查看
n 实验作业
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.求自然对数的e的近似值#include<iostream> using namespace std; int main() { int i,j; double e=1,s=1; for(i=1;i<=10;i++) { for(j=1;j<=i;j++) { s*=j; } e+=1/s; s=1; } cout<<"e="<<e<<endl; return 0; }
2,求圆周率π的近似值
#include<iostream> #include<math.h> using namespace std; int main() { long double pi=1.0; double flag =-1.0; for(int i=3;1.0/i>=1e-6;i+=2) { pi+=flag/i; flag=-flag; } cout<<"圆周率π的近似值为:"<<4*pi<<endl; return 0; }
3.将输入的诗句按照类型分别显示出来
#include<iostream> using namespace std; int main() { int a; cout<<"Please input a number:"; cin>>a; if(a<10) cout<<a<<"是小于10"<<endl; else if(a<100) cout<<a<<"是10~100"<<endl; else if(a<1000) cout<<a<<"是100~1000"<<endl; else cout<<a<<"是大于1000"<<endl; return 0; }
4.编一程序,输出图形
#include<iostream> #include<iomanip> using namespace std; int main() { int j,k; for(k=1; k<=4; k++) { for(j=1; j<=5-k; j++) cout<<setw(2)<<" "; for(j=1;j<=2*k-1;j++) cout<<setw(2)<<'*'; cout<<endl; } for(k=1;k<=3;k++) { for(j=4;j>=4-k;j--) cout<<setw(2)<<" "; for(j=4;j>=2*k-2;j--) cout<<setw(2)<<'*'; cout<<endl; } return 0; }
百钱百鸡问题
#include<iostream> using namespace std; int main() { int a, b, c, p, q; for(a=0;a<=20;a++) { for(b=0;b<=33;b++) { for(c=0;c<=100;c+=3) { p=a+b+c; q=5*a+3*b+c/3; if(p==100 && q==100) { cout<<"鸡翁为:"<<a<<"只"<<endl; cout<<"鸡母为:"<<b<<"只"<<endl; cout<<"鸡雏为:"<<c<<"只"<<endl; cout<<" "<<endl; } } } } return 0; }编程输入一个整数,计算它是几位数字,分别输出每一位数字,并输出各个数位上数字之和
#include<iostream> #include<math.h> using namespace std; int main() { int i=0, k=0, num, sum=0; cout<<"输入一个整数:"<<endl; cin>>num; while(num!=0) { k=num%10; sum+=k; cout<<k; i++; num /=10; } cout<<"该整数是: "<<i<<"位数字"<<endl; cout<<"该整数各个数位上数字之和:"<<sum<<endl; return 0; }在一个平面上,有四个圆柱形塔,塔底圆心坐标分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),塔半径为1,塔高为10米,塔外无建筑物。编程,输入任一个点平面坐标,求该点建筑物的高度
#include <iostream> #include <math.h> using namespace std; int main() { float x,y,s; cout<<"x="; cin>>x; cout<<"y="; cin>>y; if(x<0) x=-x; if(y<0) y=-y; s=sqrt((x-2)*(x-2)+(y-2)*(y-2)); if(s<=1) cout<<"平面坐标的高度为10"<<endl; else cout<<"平面坐标的高度为0"<<endl; return 0; }编程计算s=1!+2!+3!+......n!(其中n为整数,n!表示计算n阶乘),要求使用两种以上的方法
#include<iostream> using namespace std; int fac(int n) { int result = 1; if(n<0) return -1; else if(n == 0) return 1; while (n>0) { result *= n; n--; } return result; } int main() { int count=0,n; cout<<"请输入阶数:"<<endl; cin>>n; if(n==0||n==1) cout<<"result=1"<<endl; else { for(;n>=1;n--) count+=fac(n); cout<<"result="<<count<<endl; } return 0; }