第四周-自动班作业及实验

来源:互联网 发布:linux 文件上传路径 编辑:程序博客网 时间:2024/05/16 05:04

1.完成课本每一个编程题。要求先画出流程算法图或N-S图,然后编程实现,有可能的话使用两种以上方法;

题5

#include<iostream>using namespace std;int main(){long double i=0,j=1.0,s=1.0;      do{   i=i+1;        j=j*i;          s=s+1/j;  }while(j<=1000000);    cout<<"e="<<s<<endl;  }


题6.

#include<iostream>using namespace std;int main(){double x,y;double z=0,i=-1;    for(x=1;x<1e8;x+=2){i=-i;    y=1/x;y=y*i;z=z+y;}cout<<4*z<<endl;return 0;}

题7

#include<iostream>using namespace std;int main(){int num;cout<<"输入数字"<<endl;cin>>num;if(num<=10)cout<<num<<" is "<<"10"<<endl;if(num>10&&num<=100)cout<<num<<" is "<<"10"<<"to"<<"100"<<endl;if(num>100&&num<=1000)cout<<num<<" is "<<"100"<<"to"<<"1000"<<endl;if(num>1000)cout<<num<<"大于"<<"10000"<<endl;return 0;}

题8

#include<iostream>using namespace std;int main(){int h,i,j=0,k;int n;cout<<"输入*的长度数:";cin>>n;if(n%2==1)//排除偶数{for(h=1;h<=n/2+1;h++)//循环上半个三角行{for(i=1;i<=n;i++)//输出"   "{    if(i>=n/2+1-j&&i<=n/2+1+j)//到了指定位置输出*                cout<<"*";        cout<<" ";if(i<=n/2-j)//排整cout<<" ";}j=j+1;//改变每行输出*的位置cout<<endl;//换行}j=j-1;//除掉上三角的j多加了一次for(h=n/2+2;h<=n;h++){j=j-1;//改变每行输出*的位置for(i=1;i<=n;i++)//输出"   "{    if(i>=n/2+1-j&&i<=n/2+1+j)//到了指定位置输出*                cout<<"*";        cout<<" ";if(i<=n/2-j)//排整cout<<" ";}cout<<endl;//换行}}elsecout<<"只能输入奇数"<<endl;return 0;}

题(9)

#include<iostream>using namespace std;int main(){int i=0,s=0;    do{i=i+1;s=s+i*i;}while(s<=1000);    cout<<i-1<<endl;return 0;}

题10

#include<iostream>using namespace std;int main(){double in=0.01,INmoney=0,OUTmoney=0;int i;for(i=1;i<=30;i++){OUTmoney+=10;INmoney+=in;in*=2;}cout<<"陌生人给了百万富翁"<<OUTmoney<<"万元"<<endl;cout<<"百万富翁给了陌生人"<<INmoney/10000<<"万元"<<endl;}



2.百钱百鸡

#include<iostream>using namespace std;int main(){cout<<"            公鸡 "<<"母鸡 "<<"小鸡"<<endl; //定义三个整形变量x(公鸡),y(母鸡),z(小鸡)int x,y,z;int i=0;for(x=0;x<=20;x++) //循环语名forfor(y=0;y<=33;y++) for(z=0;z<=100;z+=3){if(5*x+3*y+z/3==100&&x+y+z==100) //满足100元买100只鸡{i++;cout<<"☆"<<"方案"<<i<<"☆    "<<x<<"    "<<y<<"    "<<z<<endl;}}return 0;} //注解什么的不知道怎么写啊怎么写 

3.编程输入一个整数,计算它是几位数字,分别输出每一位数字,并输出各个数位上数字之和。

#include<iostream>using namespace std;int main(){int a,b,c=0,i=0;cout<<"输入一个非零整数"<<endl;cin>>a;cout<<"从右到左"<<endl;do{b=a%10;//取余a=a/10;i=i+1;c=c+b;cout<<"第"<<i<<"位是"<<b<<endl;}while(a!=0);//a不等于0时,继续循环cout<<"它是"<<i<<"位数字"<<endl;cout<<"各个数位上数字之和为"<<c<<endl;return 0;}//感觉越来越不想写注解了喵

4.在一个平面上,有四个圆柱形塔,我把圆柱改成圆锥体塔了

#include <iostream>#include <math.h>using namespace std;int main(){double x,y,r,z;cout<<"依次输入x和y"<<endl;cin>>x>>y;x=fabs(x);//取绝对值y=fabs(y);if(x>1&&x<3&&y>0&&y<1)//判断座标范围{r=sqrt((x-2)*(x-2)+y*y);//求点到圆心距        z=10*(1-r);//求对应高zcout<<"高为"<<z<<endl;}else if(x>0&&x<1&&y>1&&y<3){r=sqrt((y-2)*(y-2)+x*x);    z=10*(1-r);cout<<"高为"<<z<<endl;}elsecout<<"高为"<<"0"<<endl;return 0;}//其实我是看错题目做了一个更难的

5.编程计算s=1!+2!+3!+......n!(其中n为整数,n!表示计算n阶乘),要求使用两种以上的方法。

(1)

#include<iostream>using namespace std;int main(){int n,i,j=1,s=0;cout<<"输入n值吧"<<endl;cin>>n;for(i=1;i<=n;i++){j=j*i;s=s+j;}cout<<"s的输出为"<<s<<endl;}//累不爱
(2)

#include<iostream>using namespace std;int main(){int n,i=1,j=1,s=0;cout<<"输入n值吧"<<endl;cin>>n;while(i<=n){j=j*i;s=s+j;i=i+1;}cout<<"s的输出为"<<s<<endl;return 0;}//累不爱 while

6.猴子吃苹果问题:猴子第一天摘了若干个苹果,当时吃了一半,还不过隐,又多吃了一个。第二天,又吃掉余下的一半,又多吃一个。以后每一天,都是吃掉前一天余下的一半零一个。到第10天,只有一个苹果了。问猴子第一天共摘了多少个苹果?

#include<iostream>using namespace std;int main(){int pg=1;int i;for(i=1;i<=10;i++){pg=(pg+1)*2;//从第10天向前计算}cout<<"第一天一共摘了"<<pg<<"个苹果"<<endl;return 0;}

7.计算s[n]=a+aa+aaa+aa...a(n个)的值。其中a是一个数字,n表示a的位数。例如,当a=1,n=5时,则要计算的表达式为 s[5]=1+11+111+1111+11111

#include<iostream>using namespace std;int main(){int a,n,i=1,j=0,k=1,s=0;cout<<"依次输入a和n值吧"<<endl;cin>>a>>n;cout<<"s[n]=";while(i<=n){j=a*k;k=10*k;s=s+j;i=i+1;cout<<s;if(i<=n)cout<<"+";}cout<<endl;return 0;}//累不爱,第7题

8.打印九九乘法表。

#include<iostream>using namespace std;int main(){int a=0,b=1;do{a=a+1;cout<<a<<"*"<<b<<"="<<a*b<<" ";if(a==b){cout<<endl;b=b+1;a=0;}}while(b<=10);return 0;}

9.两个羽毛队进行单打比赛,各出3个人。甲队为张三、李四、王五3个队员,已队为陈六、赵七、宋八3个队员。现已经抽签决定比赛名单,有人向队员打听比赛名单,张三说他不和陈六打,王五说他不和陈六和宋八打。请编程找出3对比赛名单。

#include<iostream>  using namespace std; int main()  {  char  i,j,k;  //以i,j,k分别代表张三,李四,王五for(i='x';i<='z';i++)for(j='x';j<='z';j++)for(k='x';k<='z';k++){if(i!=j && i!=k && j!=k)//同队不能互相干{        if(i!='x' && k!='x' && k!='z')//张三不和陈六干,王五不和陈六和宋八打(这特么还要不要规则){cout<<"3对比赛名单"<<endl;//x,y,z分别对应陈六,赵七,宋八cout<<"张三 VS ";    cout<<i<<endl;cout<<"李四 VS ";    cout<<j<<endl;cout<<"王五 VS ";    cout<<k<<endl;} }}return 0; }//不知道怎么把名字和字母联系啊








0 0