编程论坛
注册
登录
编程论坛
→
C++教室
编写并测试 3×3 矩阵转置函数,使用 string 类声明字符串对象
OnlyZhu
发布于 2016-10-25 22:48, 5219 次点击
刚学c++,对于这个题我能想出来的只有动态分配内存来生成动态数组,但是用string类的话,我没有一点思路,感觉想到要用数据结构的只是,但是想了想还是不会,所以请各位大神帮帮忙!非常感谢!
2 回复
#2
OnlyZhu
2016-10-26 00:05
这是原题“编写并测试 3×3 矩阵转置函数,使用动态内存分配生成动态数组来重新该题,使用指针实现函数的功能;使用 string 类声明字符串对象,重新完成该题。”动态分配的我懂了,但是string的不懂
#3
OnlyZhu
2016-10-26 00:31
#include<iostream>
#include<string>
using namespace std;
void create_arr(string **&p,int n)
{
int i,j;
p=new string *[n];
cout<<"输入数据:";
for(i=0;i<n;i++)
{
p[i]=new string[3];
for(j=0;j<n;j++)
{
cin>>*(*(p+i)+j);
}
}
}
void output(string **p,int n)
{
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
cout<<*(*(p+i)+j)<<' ';
}
cout<<endl;
}
}
void zhuangzhi(string **&p,int n)
{
int i,j;
string m;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
m=*(*(p+i)+j);
*(*(p+i)+j)=*(*(p+j)+i);
*(*(p+j)+i)=m;
}
}
}
void main()
{
string **arr;
int n;
cout<<"输入维数n:";
cin>>n;
create_arr(arr,n);
cout<<"您输入的数组是:"<<endl;
output(arr,n);
cout<<"转置后的数组是:"<<endl;
zhuangzhi(arr,n);
output(arr,n);
delete []arr;
}
谢谢各位,我知道怎么改了
[此贴子已经被作者于2016-10-26 00:34编辑过]
1