C++学习记录一

这篇博客介绍了如何使用C++进行动态内存分配来创建数组,实现冒泡排序,并通过类定义计算3D空间点到原点的距离。在冒泡排序中,博主遇到了如何正确释放内存的问题,并学习了sizeof和数组长度的确定。在3D点类的实现中,博主理解了构造函数的使用和调用成员函数的方法。然而,代码中还存在一些问题,如函数返回数组的方式和在main文件中引用类定义的困惑。
摘要由CSDN通过智能技术生成

目录

 第一题代码:

问题记录: 

2.第二问代码: 

问题记录: 

4.错误


 

碎碎念:上来就留这种作业我都麻了,基础都没学... 

作业一:

1、安装Dev-C++,编程一个函数完成如下功能。

申请Heap动态空间,10个int类型的空间,分别从键盘输入数据(用cin对象)。然后用冒泡排序法进行排序。并输出结果。最后Release所申请的动态空间(delete)。

2、定义一个类,C3DPoint,三位空间的点,定义空间点的三个坐标(float)。定义一个public 成员函数Calculation 用于计算点到原点的距离(需要包含一个头文件math.h 里面定义了sqrt开根号函数)。

在main函数中,定一个C3Dpoint的对象,并测试Calculation 函数。

  1.  第一题代码:

#include <iostream>
using namespace std; 
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
void printBubbleArr(int arr[],int k){
	for(int i=0;i<k;i++){
		cout<<arr[i]<<endl;
	}
}
void bubbleSortPrint(){
	int *const bubbleArr = new int[10];
	//cout<<"数组大小"<<endl; 
	int k =10;
	//cout<<k<<endl; 
	for (int i=0;i<k;i++){
		//cout<<"请输入第"+i+"个内容"<<endl; 
		cin>>bubbleArr[i];
	}
	//print out array:
	cout<<"数组初始内容:"<<endl;	
	printBubbleArr(bubbleArr,k);
	// bubble sort it :	
	int temp;
	bool flag=true;
	for(int i=1;i<k&&flag;i++){
		flag=false;
		for(int j=0;j<k;j++){
			if(bubbleArr[j]>bubbleArr[j+1]){//desc and exchange
				temp=bubbleArr[j];
				bubbleArr[j]=bubbleArr[j+1];
				bubbleArr[j+1]=temp;
				flag=true;
			}
		}
	}
	cout<<"排序后结果"<<endl; 
	printBubbleArr(bubbleArr,k); 
	//release space:
	delete []bubbleArr;
}

int main(int argc, char** argv) {
	bubbleSortPrint();
}

问题记录: 

 1.新建使用数组堆空间(动态空间):

http://c.biancheng.net/view/2199.html

要使用指针,因为指针不断移动位置,所以使用常指针能最后的时候确保为首地址

https://blog.csdn.net/m0_37884601/article/details/81174621

2.sizeof的用法以及C++语言数组如何确定长度:

https://www.cnblogs.com/huolong-blog/p/7587711.html

确定数组长度:

https://www.runoob.com/note/29489

https://blog.csdn.net/qing101hua/article/details/52180445

3.代码已修改仍执行原未修改代码:

保存已修改.cpp,删除.exe重新生成

4.自定义函数写在main之前,函数套函数,内层放在前面写

5.布尔类型是bool

6.仍存在问题:

  • 函数原型复习
  • 如何函数返回数组

2.第二问代码: 

#include <iostream>
#include <math.h>
using namespace std; 
class C3Point{
	float x,y,z;
	public:
		C3Point(float c_x,float c_y,float c_z) {
			x=c_x;
			y=c_y;
			z=c_z;
		}
		float Calculation(){
			return sqrt(pow(x,2)+pow(y,2)+pow(z,2));
		}	
	
};
int main(int argc, char** argv) {
	C3Point point(1,3,5);
	cout<<point.Calculation()<<endl;

问题记录: 

1.构造函数不用this,形参避免和成员变量同名。调用方法:

https://zhuanlan.zhihu.com/p/168787937

2.pow、sqrt函数在math.h头文件内

#include "math.h"

3.记得接受函数结果 

4.错误

[Error] ld returned 1 exit status

 C语言--[Error] ld returned 1 exit status--解决方法。_字母的小草的博客-CSDN博客_ldreturned1exitstatus怎么解决

练习时写了多个main,要注掉,把其他不需要运行的改成main01,main02......

5.仍存在问题:

  • 如何在main文件引用其他.cpp定义类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值