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;//换行
}
}
else
cout<<"只能输入奇数"<<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++) //循环语名for
for(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);//求对应高z
cout<<"高为"<<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;
}
else
cout<<"高为"<<"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;
}//不知道怎么把名字和字母联系啊