#c #arrays #vector
Вопрос:
Мой первый вопрос о CPP в Stackoverflow. Надеюсь, я получу ответ.
#include <fstream>
using namespace std;
ifstream fin("Matr.dat");
ofstream fout("out.dat");
int a[1000][1000];
int b[10000];
int n, m;
void read()
{
fin>>n>>m;
for(int i=1; i<n; i )
{
for(int j=1; j<m; j )
fin>>a[i][j];
}
}
int vect()
{
int c=1;
for(int i=2; i<=n; i )
{
for(int j=2; j<=m; j )
{
b[c]=a[j] a[j 1];
c ;
}
}
return c;
}
int main()
{
read();
int c=vect();
for(int i=0; i<c; i )
fout<<b[i]<<' ';
return 0;
}
Я и мой коллега пытаемся добавить значения 2 столбцов в вектор.
Для строки `b[c]=a[j] a[j 1]; я получаю сообщение об ошибке, в котором говорится, что я использую 2 несовместимых типа вместе. Это не работает…
Может кто-нибудь, пожалуйста, помочь мне добавить значения 2 столбцов в вектор?
Комментарии:
1. Будьте осторожны с именами, которые вы выбираете, чтобы объяснить свою проблему. Это не матрицы и векторы. Это массив и массив массива. К сожалению, они никак не соотносятся с этими математическими понятиями. Хорошая математическая библиотека, предлагающая эти типы векторов и матриц, может вам очень помочь.
2. Как ты думаешь
a[j]
, что это такое? Пожалуйста, помните, какa
это декларируется. Не должно ли это бытьa[i][j]
вместо этого (илиa[j][i]
, в зависимости от того, что вы хотите подвести итог)?3. Также обратите внимание, что в C индексы массивов начинаются с нуля.
4.
for(int i=1; i<n; i )
выглядит странно.i=1
означает, что в нем ничего не будет хранитьсяa[0][X]
. Может быть, это именно то, чего ты хочешь, но мне это кажется случайной ошибкой.5. Аналогично в
for(int i=2; i<=n; i )
,i<=n
, позволитi
равнятьсяn
, и это может быть вызвано одной ошибкой в другом направлении.