if(a*a!
=b*b+c*c){
cout<<"不能够成直角三角形,以下面积计算错误!
\n";
}
}
voidswap(int&t1,int&t2)
{
intt=t1;
t1=t2;
t2=t;
}
voidShowArea()
{
doubles=b*c/2.0;
cout<<"三角形的面积:
"<
}
};
voidmain()
{
TRIt1;
t1.Set(3,4,5);
t1.ShowArea();
t1.Set(3,4,7);
t1.ShowArea();
}
8
12
15
3
9
6
8
10
5
12
16
4
18
10
9
8、定义一个类DataTower求数塔各层极大值数字的和。
对于右图所示的5层数塔其和为8+15+9+12+18=62。
具体要求如下:
(1)私有数据成员
●intd[5][5];//用二维数组的下三角存储数塔
●intindex[5];//存储各层极大值元素的位置
●intmaxsum;//极大值元素的和
(2)公有成员函数
●DataTower(intt[][5],intn);//用行指针t所指
二维数组的前n行初始化数塔
●voidf();//求各层极大值元素的位置,
即index[0]为第1层极大值的列下标0,
index[1]为第2层极大值的列下标1,
index[2]为第3层极大值的列下标1,以此类推。
●voidfun();//根据成员index中的元素值(极大值元素的列下标)求maxsum
●voidprint();输出各数据成员,包括数塔及其极大值元素的和,极大值元素及其位置
(3)在主函数中用给定的数据对定义的类进行测试。
#include
classDataTower{
intdata[5][5];
intindex[5];
intmaxsum;
public:
DataTower(intt[][5],intn)
{
for(inti=0;ifor(intj=0;j<=i;j++)
data[i][j]=t[i][j];
}
voidf()
{
for(inti=0;i<5;i++){
index[i]=0;
for(intj=1;j<=i;j++)
if(data[i][j]>data[i][index[i]])
index[i]=j;
}
}
voidfun()
{
maxsum=0;
for(inti=0;i<5;i++)
maxsum+=data[i][index[i]];
}
voidprint()
{
inti,j;
cout<<"数塔为:
\n";
for(i=0;i<5;i++){
for(j=0;j<=i;j++)
cout<cout<}
cout<<"极大值和为"<\n";
for(i=0;i<5;i++)
cout<}
};
voidmain()
{
intd[5][5]={{8},{12,15},{3,9,6},{8,10,5,12},{16,4,18,10,9}};
DataTowert(d,5);
t.f();
t.fun();
t.print();
}
实验小结:
1、C++的语法规则,让我很难接受,产生畏难情绪,总是怕。
程序出现错误,不如何查找错误,对调试不是很明白。
2、有些急于求成,总想编写综合性的程序,把老师的要求一次性尽快完成。
3、通过上机实践来验证所学的理论,在机器上查找错误来巩固概念,能开阔编程思路,提高反映效率,提高分析问题解决问题的才能。
4、找一个相似模板,认真仔细地看,去理解它,看懂它,然后根据自己的实践内容适当修改。
5、与同学讨论,通过小组的形式来学习C++。
如有侵权请联系告知删除,感谢你们的配合!