C++内存小练习

使用数据文件中的一组地震检波器测量值确定可能的地震事件的位置

程序的输入是名为map.txt的数据文件和用于计算短时间能量和长时间能量的 取样值的数目。输出是给出关于潜在的地震事件次数的报告

复制代码
#include <iostream>
#include <fstream>

using namespace std;

//定义一个指标用来判断是否发生了地震
#define INDEX 1.5
double power(double arr[11], int n, int window){
	double xsqure = 0;
	for (int i = 0; i < window; i++){
		xsqure = pow(arr[n - i], 2);//这个pow函数是取次方的意思
	}
	return xsqure / window;
}
int main(void) {
	string filename;
	int num = 0;
	double senior = 0, long_power = 0, short_power = 0, finall = 0;
	int long_window = 0;
	int short_window = 0;
	double *senior_num = NULL;
	cout << "请输入文件名:" << endl;
	cin >> filename;

	ifstream file;
	file.open(filename);
	if (file.fail()) {
		cerr << "输入文件名错误:"<<strerror(errno) << endl;
	}
	file >> num >> senior;
	cout << num <<" " << senior << endl;
	if (num>0){
		senior_num = new double[num];//按需分配空间
		for (int i = 0; i < num; i++){
			file >> senior_num[i];
		}
	}

	cout << "请输入长期判断的数据:" << endl;
	cin >> long_window;
	cout << "请输入短期判断的数据:" << endl;
	cin >> short_window;

	for (int i = long_window-1; i < num; i++){
		long_power = power(senior_num, i, long_window);
		short_power = power(senior_num, i, short_window);
		cout << long_power << endl;
		cout << short_power << endl;
		finall = short_power / long_power;
		cout << finall << endl;
		if (finall > INDEX) {
			cout << "地震可能发生在:" << senior * i << " " << endl;
		}
	}
	delete[] senior_num;//释放空间
	
}

编写一个程序,使用 cin 从标准输入输入 3 段文字,保存到一段动态分配的 内存中,每一段文字输入后,必须要即时保存到动态内存中

复制代码
#include <iostream>
#include <fstream>

using namespace std;
/*
编写一个程序,使用 cin 从标准输入输入 3 段文字,保存到一段动态分配的
内存中,每一段文字输入后,必须要即时保存到动态内存中
*/

int main(void) {
	string* p = NULL;
	string str;
	int i = 0;
	p = new string[3];
	while (i<3){
		str.clear();//每次循环将字符串清空
		cout << "请输入"<< i+1 <<"第个字符串:" << endl;
		cin >> str;

		*(p + i) = str;
		cout << "此时动态内存中p的值为:" << endl;
		for (int k = 0; k <= i; k++){
			cout << *(p+k) <<"";
		}
		cout << endl;
		i++;
	}
	delete[] p;//释放内存
}

编写一个程序,链接两个字符串字面常量,将结果保存在一个动态分配的 char 数组中。重写这个程序,连接两个标准 string 对象

复制代码
#include <iostream>
#include <fstream>

using namespace std;
/*
编写一个程序,链接两个字符串字面常量,将结果保存在一个动态分配的 char
数组中。重写这个程序,连接两个标准 string 对象
*/

int main(void) {
	string str1 = "name";
	string str2 = "我的";
	string str3 = str1 + str2;

	string* str = new string[2];
	for (int i = 0; i < str3.length(); i++){
		*(str + i) = str3[i];
	}
	for (int i = 0; i < str3.length(); i++) {
		cout << *(str + i);
	}
	delete[] str;//释放内存
}

根据输入的二维数组的行数和列数,动态地为该数 组分配存储空间;其次,向二维数组中 输入数据;最后输出该数组中的所有元素。

复制代码
#include<iostream>
#include <stdlib.h>
using namespace std;
int main(void) {
	int* p = NULL;
	int row, col;
	int i, j, k = 1;
	cout << "Input number of row : \n";
	cin >> row;
	cout << "Input number of column\n";
	cin >> col;
	p = new int[row * col];
	if ((row * col)==0) {
		cout << "Not allocate memory!\n";
		exit(1);
	}
	for (i = 0; i < row; i++) {
		for (j = 0; j < col; j++) p[i*col+j] = k++;//根据行列下标,计算下标值
	}
	for (i = 0; i < row; i++) {
		for (j = 0; j < col; j++)
			cout << p[i * col + j] << '\t';//根据行列下标,计算下表值
		cout << endl;
	}
	delete[] p;
	return 0;
}
相关推荐
AC赳赳老秦5 小时前
采集行为合规自检:OpenClaw 自动校验 robots 协议与采集频率,规避违规采集风险
java·开发语言·c++·python·php·deepseek·openclaw
无名猿6 小时前
C++ 查找算法:std::find 与容器成员 find 的性能差距
c++·性能优化·stl·标准库
程序猿编码6 小时前
工业视觉多任务方案:可编程梯度信息视觉框架,训练评估 + C++ 部署完整实战
开发语言·c++·视觉·推理引擎
朝朝辞暮i7 小时前
C++ 第 21 课:struct —— 把一组相关数据打包在一起
开发语言·c++·算法
SHARK_pssm8 小时前
【C++——类和对象(下)】
开发语言·c++·经验分享·笔记
汉克老师9 小时前
GESP2026年9月认证C++二级( 第一部分选择题(1~7题)精讲
c++·gesp·小学生·学c++编程
沫璃染墨9 小时前
《从零入门Linux系统篇(五十四):线程篇·七——互斥锁底层原理:从原子交换到线程竞争与锁实现》
linux·运维·服务器·开发语言·c++·驱动开发·系统架构
可乐ea11 小时前
GitHub Security Lab 开源 Fuzzing Taskflow:让 LLM 智能体自己跑完 C/C++ 模糊测试
jvm·c++·github·模糊测试·mcp·代码agent·智能体自动化
朝朝辞暮i11 小时前
C++ 第 13 课:值传递 —— 为什么函数里改了,外面却没变?
java·c++·算法
无忧.芙桃12 小时前
C++语言原理与实践(十):vector类的底层实现
开发语言·c++·算法