注册 登录
编程论坛 C++教室

编写并测试 3×3 矩阵转置函数,使用 string 类声明字符串对象

OnlyZhu 发布于 2016-10-25 22:48, 5219 次点击
刚学c++,对于这个题我能想出来的只有动态分配内存来生成动态数组,但是用string类的话,我没有一点思路,感觉想到要用数据结构的只是,但是想了想还是不会,所以请各位大神帮帮忙!非常感谢!
2 回复
#2
OnlyZhu2016-10-26 00:05
这是原题“编写并测试 3×3 矩阵转置函数,使用动态内存分配生成动态数组来重新该题,使用指针实现函数的功能;使用 string 类声明字符串对象,重新完成该题。”动态分配的我懂了,但是string的不懂
#3
OnlyZhu2016-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