【问题标题】:Getting a Matrix from a file and assigning it to an array with a max size从文件中获取矩阵并将其分配给具有最大大小的数组
【发布时间】:2010-11-02 01:57:38
【问题描述】:

好的,所以我有一个数组 a[maxsize] [maxsize] 其中maxsize=10 从小于最大大小的文件中获取数组时如何让数组正常工作。

示例矩阵:

1 2 3
4 5 6
7 8 9

出来了:

1 2 3 4 5 6 7 8 9

我的代码: `int main() { 常量 int maxsize = 10; double original_matrix[maxsize][maxsize], transposed_matrix[maxsize][maxsize];

ifstream fin;
ofstream fout;

fin.open ("input.txt");

if (fin.fail())
{
    cout << "Input file opening failed. \n";
    return 0;
}

for(i=0; i<maxsize; i++)
{
    for(j=0; j<maxsize; j++)
    {
        fin >> original_matrix [i][j];
    }
}

transpose(original_matrix[][maxsize], transposed_matrix[][maxsize],maxsize)


return 0;
}

我希望数组像这样分配它

M [0] [0]=1 M [0] [1]=2 M [0] [2]=3
M [1] [0]=4 M [1] [1]=5 M [1] [2]=6
M [2] [0]=7 M [2] [1]=8 M [2] [2]=9

不是

M [0] [0]=1 M [0] [1]=1 M [0] [2]=1 M [0] [3]=1 M [0] [4]=1 M [0] [5]=1 M [0] [6]=1 M [0] [7]=1 M [0] [8]=1

.....等等

文本文件如下所示:

2
1 0
0 1
3
8 9 1
3 5 2
-2 3 -1
0

【问题讨论】:

  • 您需要发布一些代码以使其易于理解。
  • @Steve Townsend - 是的,给我几分钟,因为我没有太多时间,因为我从文件中读取矩阵时卡住了。
  • 你可以直接将它们读入一维数组,取平方根,然后使用[x + y * n]
  • 这样做是为了获得移动到二维数组的大小?
  • 您的输入文件的格式是什么?矩阵的每一行是单独一行,还是所有内容都在一行?

标签: c++ arrays file matrix


【解决方案1】:

如果你想让矩阵以矩阵形式出现,你为什么不呢:

    for(i=0; i<maxsize; i++)
{
    for(j=0; j<maxsize; j++)
    {
        fin >> original_matrix [i][j];
    }
    cout << "\n"
}

这样它就以一个盒子的形式出现,而不是单行。我认为你还必须使用 maxsize,因为你希望它是一个没有空的矩阵,所以你应该检查有多少向量组成矩阵,并将其用作条件(而不是 maxsize)

edit - 输入文件伪代码

所以第一行是一个数字,它告诉使用矩阵将有多少行或列。因此,该程序将假定它是一个方阵。您想要的条件值是第一行(即 2,3,0)。确保检查该值是否大于 0 且小于 10。解析每个值的输入行,将其注入矩阵。设置条件值,就可以得到一个完美的方阵。

  1. 打开文件
  2. 读取线,是矩阵的长度吗? * 如果是,则设置为条件 * 如果不是,则为矩阵中的值
  3. 检查条件以确保 0
  4. 打印。

【讨论】:

  • 这可能是不正确的,因为我看到你再次编辑了它。
  • 唯一的问题是我必须使用 maxsize 并解决这个问题。这样任何用户都不能超过 10X10 的大小,但可以做任何小于或等于这个大小的事情。
  • 是的,所以创建另一个上限为 10 的条件,即 int cond = 0; cond = 3 (在这种情况下,你可以从有多少列中获取),然后检查 if (cond > 10){ cout
  • 我有点困惑如何做到这一点,因为用户没有输入它来自文件的数组,所以它已经制作好了。
  • 你能编辑你的帖子并显示文本文件输入的样子吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-02
  • 2021-06-23
  • 1970-01-01
  • 2020-01-14
  • 1970-01-01
  • 1970-01-01
  • 2012-04-16
相关资源
最近更新 更多