c++ primer 课后习题12.24// 12.24.cpp : 定义控制台应用程序的入口点。

// 12.24.cpp : 定义控制台应用程序的入口点。
//


#include "stdafx.h"




#include <iostream>  
#include <memory>  
#include <string>  


#pragma warning( disable : 4996)  


using namespace std;


int main()
{
string str;
cout << "请输入一个字符串:";
cin >> str;
char *cp = new char[str.size() + 1]; // 这地方一定要加1,不然delete [] cp 的时候会出错。  
// 由于str.c_str() 返回一个以 '\0' 结尾的C 风格字符串,所以实际长度比 str.size()长。  
strcpy(cp, str.c_str());     //这里调用了 string 对象的 c_str() 来返回一个C 风格字符串。  
//  _ASSERTE(_CrtCheckMemory());  //百度一下有个大神说可以用这来检查我下面说的的错误。  
cout << cp << endl;
delete[] cp;


return 0;


}
2005年遥感院复试的答案 // 2005.cpp : 定义控制台应用程序入口。 // #include "stdafx.h" #include "fstream" #include "iostream" using namespace std; int _tmain(int argc, _TCHAR* argv[]) { //两个卷积算子 int a_array[3][3]={{0,-1,0},{-1,5,-1},{0,-1,0}}; int b_array[5][5]={{0,0,-1,0,0},{0,-1,-2,-1,0},{-1,-2,16,-2,-1},{0,-1,-2,-1,0},{0,0,-1,0,0}}; //两个待卷积的数组 int a[125][80]; int b[100][100]; //把数据读入数组中 ifstream a_infile("SourceData.txt"); int i,j; for(i=0;i<125;i++) for(j=0;j<80;j++) { a_infile>>a[i][j]; } a_infile.close(); ifstream b_infile("SourceData.txt"); for(i=0;i<100;i++) for(j=0;j<100;j++) { b_infile>>b[i][j]; } b_infile.close(); //两个卷积函数 void a_convolute(int a[125][80],int a_array[3][3],int a_result[125][80]); void b_convolute(int b[100][100],int b_array[5][5],int a_result[100][100]); int a_result[125][80],b_result[100][100]; //调用卷积函数计算 a_convolute(a,a_array,a_result); b_convolute(b,b_array,b_result); ofstream a_outfile("a_result.txt"); for(i=0;i<125;i++) {for(j=0;j<80;j++) { a_outfile<<a_result[i][j]<<" "; } cout<<endl; } a_outfile.close(); ofstream b_outfile("b_result.txt"); for(i=0;i<100;i++) { for(j=0;j<100;j++) { b_outfile<<b_result[i][j]<<" "; } cout<<endl; } b_outfile.close(); return 0; } void a_convolute(int a[125][80],int a_array[3][3],int a_result[125][80]) { int i,j; for(i=1;i<123;i++) for(j=1;j<79;j++) { a_result[i][j]=a[i-1][j-1]*a_array[0][0]+a[i-1][j]*a_array[0][1]+a[i-1][j+1]*a_array[0][2]+ a[i][j-1]*a_array[1][0]+a[i][j]*a_array[1][1]+a[i][j+1]*a_array[1][2]+ a[i+1][j-1]*a_array[2][0]+a[i+1][j]*a_array[2][1]+a[i+1][j+1]*a_array[2][2]; } for(i=0;i<125;i++){a_result[i][0]=a[i][0];a_result[i][79]=a[i][79];} for(j=0;i<80;j++){a_result[0][j]=a[0][j];a_result[124][j]=a[124][j];} }; void b_convolute(int b[100][100],int b_array[5][5],int b_result[100][100]) { int i,j; for(i=2;i<98;i++) for(j=2;j<98;j++) { b_result[i][j]=b[i-2][j-2]*b_array[0][0]+b[i-2][j-1]*b_array[0][1]+b[i-2][j]*b_array[0][2]+b[i-2][j+1]*b_array[0][3]+b[i-2][j+2]*b_array[0][4]+ b[i-1][j-2]*b_array[1][0]+b[i-1][j-1]*b_array[1][1]+b[i-1][j]*b_array[1][2]+b[i-1][j+1]*b_array[1][3]+b[i-1][j+2]*b_array[1][4]+ b[i][j-2]*b_array[2][0]+b[i][j-1]*b_array[2][1]+b[i][j]*b_array[2][2]+b[i][j+1]*b_array[2][3]+b[i][j+2]*b_array[2][4]+ b[i+1][j-2]*b_array[3][0]+b[i+1][j-1]*b_array[3][1]+b[i+1][j]*b_array[3][2]+b[i+1][j+1]*b_array[3][3]+b[i+1][j+2]*b_array[3][4]+ b[i+2][j-2]*b_array[4][0]+b[i+2][j-1]*b_array[4][1]+b[i+2][j]*b_array[4][2]+b[i+2][j+1]*b_array[4][3]+b[i+2][j+2]*b_array[4][4]; } for(i=0;i<100;i++){b_result[i][0]=b[i][0];b_result[i][98]=b[i][98];} for(i=1;i<100;i++){b_result[i][0]=b[i][0];b_result[i][99]=b[i][99];} for(j=0;j<100;j++){b_result[0][j]=b[0][j];b_result[99][j]=b[99][j];} for(j=1;j<100;j++){b_result[0][j]=b[0][j];b_result[98][j]=b[98][j];} };
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值