1.完成课本每一个编程题。要求先画出流程算法图或N-S图,然后编程实现,有可能的话使用两种以上方法
求自然对数e
#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;
}
求圆周率
#include <iostream>
using namespace std;
int main()
{
int a;
double P,b;
b=1;
P=0;
for(a=1;a<10e6;a+=2)
{
P+=4*(double)1/a*b;
b*=-1;
}
cout<<"圆周率为:"<<P<<endl;
return 0;
}
#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<<"is 10 to 100"<<endl;
else
if(100<a&&a<1000)
cout<<a<<"is 100 to 1000"<<endl;
else
if(a>=1000)
cout<<a<<"大于或等于1000"<<endl;
return 0;
}
输出图形为菱形
#include<iostream>
using namespace std;
int main()
{
int a,b;
if(a<=4)
{for(a=1;a<=4;a++)
{for(b=1;b<=15-2*a;b++) cout<<" ";
for(b=1;b<=2*a-1;b++) cout<<" *";
cout<<"\n";
}
}
if(a>4&&a<=7)
{for(a=5;a<=7;a++)
{for(b=1;b<=2*a-1;b++) cout<<" ";
for(b=1;b<=15-a*2;b++) cout<<" *";
cout<<"\n";
}
}
return 0;
}
//在if中嵌套for语句,利用for语句计算空格的位置,以及*号的位置
计算1^2+2^2+3^2+…+n^2<=1000的最大值n
#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;
}
求解百旺富翁与陌生人各获利
#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;
}
2.编程求“百钱百鸡”问题。(鸡翁一值钱五,鸡母 一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?)
#include<iostream>
using namespace std;
int main()
{
int j,k,l;
for(j=0;j<=20;j++)
for(k=0;k<=33;k++)
for(l=0;l<=99;l+=3)
if(5*j+3*k+l/3==100&&j+k+l==100)
cout<<"鸡翁数量为:"<<j<<"个"<<" "
<<"鸡母数量为:"<<k<<"个"<<" "
<<"鸡雏数量为:"<<l<<"个"<<endl;
return 0;
}
//利用for语句进行列举法时,再加入if语句进行选择。
#include<iostream>
using namespace std;
int main()
{
int j,f,t,g,k=0,l,m,n=0;
cout<<"请输入一个数:";
cin>>m;
j=m;
f=m;
while(m>0)
{
m/=10;
n++;
}
cout<<"它是一个"<<n<<"位数"<<endl;
cout<<"该数从个位起依次为:";
for(g=1;g<=n;g++)
{
t=f%10;
f=f/10;
cout<<" "<<t;
}
cout<<endl;
for(l=0;l<n;l++)
{
k=k+(j%10);
j/=10;
}
cout<<"该数值各个位数字之和为:"<<k<<endl;
return 0;
}
#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.编程计算s=1!+2!+3!+......n!(其中n为整数,n!表示计算n阶乘),要求使用两种以上的方法。
解法一:
#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<<endl;
return 0;
}
//利用while语句实现直到型循环结构
解法二:
#include<iostream>
using namespace std;
int main()
{
double a=1,b,n,s=0;
cout<<"输入一个整数:";
cin>>n;
for(b=1;b<=n;b++)
{
a=a*b;
s+=a;
}
cout<<"阶乘和为:"<<s<<endl;
return 0;
}
//利用for语句进行循环,对比也可发现相对if语句,for语句更为方便
#include<iostream>
using namespace std;
int main()
{
int a,b=1,c;
for(c=1;c<10;c++)
{
b=(b+1)*2;
a+=b;
}
cout<<"猴子第一天摘了:"<<b<<"个苹果"<<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,s=0,t=0;
cout<<"输入一个数字:";
cin>>a;
cout<<"输入它的位数:";
cin>>n;
while(i<=n)
{
t=t+a;
s=s+t;
a=a*10;
i++;}
cout<<"计算的结果为: "<<s<<endl;
return 0;
}
8.打印九九乘法表。
#include <iostream>
using namespace std;
int main()
{
cout<<"九九乘法表"<<endl;
int i,j,k;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
cout<<i<<"*"<<j<<"="<<i*j<<" ";
cout<<endl;
}
return 0;
}
9.两个羽毛队进行单打比赛,各出3个人。甲队为张三、李四、王五3个队员,已队为陈六、赵七、宋八3个队员。现已经抽签决定比赛名单,有人向队员打听比赛名单,张三说他不和陈六打,王五说他不和陈六和宋八打。请编程找出3对比赛名单。
#include<iostream>
using namespace std;
int main()
{
cout<<"将张三、李四、王五 编号为 a b c"<<endl;
cout<<"将陈六、赵七、宋八 编号为 A B C"<<endl;
char i,j,k;
for(i='A';i<='C';i++)
for(j='A';j<='C';j++)
for(k='A';k<='C';k++)
if(i!=j&&j!=k&&k!=i)
if(i!='A'&&k!='A'&&k!='C')
cout<<"a--"<<i<<" "<<"b--"<<j<<" "<<"c--"<<k<<endl;
return 0;
}