明哥,这是三角形的加强完善版。。。
/******计算三角形的面积与周长(加强版)******/
#include <iostream>
#include <math.h> //由于用到sqrt()函数,要用到数学调用,头文件形式为<math.h>
using namespace std;
int main()
{
float a, b, c, p, S, C; //定义三角形的三边变量a、b、c,面积S,周长C
char k;
while(1)
{
cout<<"请输入三角形的三边长度:";
cin>>a>>b>>c; //用户自行输入三角形的三边长度
if(a+b>c&&a+c>b&&b+c>a) //用if语句判断能否构成三角形
{
p = (a+b+c)/2;
S = sqrt(p*(p-a)*(p-b)*(p-c)); //三角形的面积公式
C = a+b+c;
cout<<"三角形的面积是: "<<S<<endl;
cout<<"三角形的周长是: "<<C<<endl;
}
else //若不能构成三角形,再次输入数据
{
cout<<"您输入的三边长度不能构成三角形。"<<endl;
}
cout<<"若想继续输入,请按Y;若想退出程序,请按N。"<<endl<<endl;
cin>>k;
if(k =='Y'||k == 'y')
continue;
else if(k == 'N'||k == 'n')
break;
}
system("pause");
return 0;
}
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阶乘),要求使用两种以上的方法。
6.猴子吃苹果问题:猴子第一天摘了若干个苹果,当时吃了一半,还不过隐,又多吃了一个。第二天,又吃掉余下的一半,又多吃一个。以后每一天,都是吃掉前一天余下的一半零一个。到第10天,只有一个苹果了。问猴子第一天共摘了多少个苹果?
7.计算s[n]=a+aa+aaa+aa...a(n个)的值。其中a是一个数字,n表示a的位数。例如,当a=1,n=5时,则要计算的表达式为
s[5]=1+11+111+1111+11111
8.打印九九乘法表。
9.两个羽毛队进行单打比赛,各出3个人。甲队为张三、李四、王五3个队员,已队为陈六、赵七、宋八3个队员。现已经抽签决定比赛名单,有人向队员打听比赛名单,张三说他不和陈六打,王五说他不和陈六和宋八打。请编程找出3对比赛名单。
10.积累调试程序经验,收集错误信息原因(每个同学收集3-5条错误信息原因,并输入电脑形成文字)
书本作业题
/******求自然对数e******/
#include <iostream>
using namespace std;
double fun(double x)
{
double f;
if(x<0)
cout<<"data error";
else if(x==0||x==1)
f = 1;
else
f = fun(x-1)*x;
return f;
}
int main()
{
double e, t, k;
e = t = k = 1;
while(t>10e-6)
{
e +=1.0/fun(k);
t = 1.0/fun(k);
k++;
}
cout<<"e = "<<e<<endl;
return 0;
}
/******求pi******/
#include <iostream>
using namespace std;
int main()
{
double pi, i, k, t;
pi = 0,k = i = t = 1;
while(t>10e-6)
{
pi += 4*1.0/i*k;
t = 1.0/i;
k *= -1;
i = i+2;
}
cout<<"pi = "<<pi<<endl;
return 0;
}
/******数据分类******/
#include <iostream>
using namespace std;
int main()
{
float n;
while(1)
{
cout<<"请输入数据:";
cin>>n;
if(n<10)
cout<<n<<" is below 10."<<endl;
else if(n<100)
cout<<n<<" is 10 to 100."<<endl;
else if(n<1000)
cout<<n<<" is 100 to 1000."<<endl;
else
cout<<n<<" is over 1000."<<endl;
}
return 0;
}
/******“*阵”******/
#include <iostream>
using namespace std;
int main()
{
int i,j,k;
for(i=7;i>=1;i-=2)
{
for(k=i;k>0;k--)
cout<<' ';
for(j=8-i;j>0;j--)
{
cout<<"* ";
}
cout<<endl;
}
for(i=5;i>=1;i-=2)
{
for(k=8-i;k>0;k--)
cout<<' ';
for(j=i;j>0;j--)
{
cout<<"* ";
}
cout<<endl;
}
return 0;
}
这道我要仔细研究,表示不懂
/*****求n******/
#include <iostream>
using namespace std;
int main()
{
int n, k, sum = 0;
for(n=1;sum<=1000;n++)
{
k = n*n;
sum += k;
}
--n;
cout<<"n的最大值:"<<n<<endl;
return 0;
}
/******换钱计划******/
#include <iostream>
using namespace std;
int main()
{
int i, k = 0, x, y = 1; //j代表富翁,k代表陌生人。
for(i=1;i<=30;i++)
{
k += 100000;
x += y;
y = y*2;
}
cout<<"陌生人给了富翁"<<k<<"元"<<endl
<<"富翁给了陌生人"<<x<<"元"<<endl;
return 0;
}
作业2
/******百钱百鸡******/
#include <iostream>
using namespace std;
int main()
{
int x, y, z;
for(x=0;x<=20;x++)
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)
cout<<x<<"只鸡翁"<<y<<"只鸡母"<<z<<"只雏鸡"<<endl;
return 0;
}
作业3
/******计算整数******/
#include <iostream>
using namespace std;
int main()
{
int sum = 0, n, i = 0, j;
cout<<"请输入一个整数:";
cin>>n;
cout<<"每一位数字是:";
while(n>0)
{
j = n%10;
sum += j, i++;
n = n/10;
cout<<j<<" ";
}
cout<<"这是 "<<i<<" 位数字。"<<endl
<<"数字之和是:"<<sum<<endl;
return 0;
}
/******求高度******/
#include <iostream>
using namespace std;
int main()
{
int x, y;
cout<<"请输入该点的横坐标:";
cin>>x;
cout<<"请输入该点的纵坐标:";
cin>>y;
cout<<"该点的坐标为:"<<"("<<x<<","<<y<<")"<<endl;
if(((x+2)*(x+2)+(y+2)*(y+2)<=1)
||((x-2)*(x-2)+(y+2)*(y+2)<=1)
||((x+2)*(x+2)+(y-2)*(y-2)<=1)
||((x-2)*(x-2)+(y-2)*(y-2)<=1))
cout<<"该点建筑物的高度为10m。"<<endl;
else
cout<<"该点建筑物的高度为0m。"<<endl;
return 0;
}
/******求n的阶乘******/
#include <iostream>
using namespace std;
int main()
{
int sum, fact, m, n, i;
sum = 0;
cout<<"请输入n的值:";
cin>>n;
for(m = 1;m<=n;m++)
{
fact = 1;
for(i = 1;i<=m;i++)
fact *= i;
sum += fact;
}
cout<<"sum = "<<sum<<endl;
return 0;
}
/******猴子苹果******/
#include <iostream>
using namespace std;
int main()
{
int sum = 1, i;
for(i = 1;i<10;i++)
{
sum = (sum+1)*2;
}
cout<<"猴子一共摘了 "<<sum<<" 个苹果。"<<endl;
return 0;
}
/******求a+aa+aaa....+aaaaaa******/
#include <iostream>
using namespace std;
int main()
{
int i, a, n, j, k = 0;
long s = 0;
cout<<"请输入a的数值(a的数值范围0~9):";
cin>>a;
cout<<"请输入n的数值:";
cin>>n;
for(i = 1;i<=n;i++)
{
for(j = 1;j<=i;j++)
{
k = k*10+a;
}
s += k;
k = 0;
}
cout<<"s"<<"["<<n<<"]"<<" = "<<s<<endl;
return 0;
}
/******求比赛对手******/
#include <iostream>
using namespace std;
int main()
{
int m=0;
char i,j,k; //定义i,j,k;i为a的对手,j为b的对手,k为c的对手
cout<<"将张三,李四,王五分别记为a,b,c"<<endl;
cout<<"将陈六,赵七,宋八分别记为x,y,z"<<endl;
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<<"比赛名单如下:"<<endl;
cout<<"a对抗"<<i<<" "<<"b对抗"<<j<<" "<<"c对抗"<<k<<" ";
}
}
}
return 0;
}
/******九九数乘表******/
#include <iostream>
using namespace std;
int main()
{
int i,j;
for (i=1,j=1;j<=9;j++)
{
i = 1;
cout<<i<<"*"<<j<<"="<<i*j<<" ";
while(i<j)
{
i++;
cout<<i<<"*"<<j<<"="<<i*j<<" ";
}
cout<<endl;
}
return 0;
}
昨天连体地复制了,不知道会变成这样,这次是修改版本。。
另附上三角形的最终版本