Задать вопрос
caramel14
@caramel14
Всякое разное этакое чажу

Простенькая программа С++ работает неверно. Как исправить?

По задумке, программа должна принимать номер строки в двойном квадратном массиве и сравнивать строку со столбом, имеющим соответствующий номер, но что-то пошло не так.
#include <iostream>
using namespace std;
int main() {
const int n = 1000;
int a,b, i, j;
bool str= false;
float arr[n][n];
cout << "Введите размерность:\n";
cin >> a;
cout << "Заполнение массива:\n";

for (int i = 0; i < a; i++) {
    for (int j = 0; j < a; j++) {
        cout <<"Введите элемент ["<<i+1<<","<<j+1<<"]:";
        cin >> arr[i][j];
        }
    }
for (int i = 0; i < a; i++) {
    for (int j = 0; j < a; j++)
        cout << arr[i][j]<<" ";
        cout << "\n";
        }
cout << "Введите номер строки: \n";
cin >> b;
    for (int i = 0; i < a; i++) {
        for (int j = 0; j < a; j++)
            if (arr[b-1][j] == arr[i][b-1]) str = true;

    }
    if (str == false) cout <<"Строка и столбец не совпадают";
    if (str == true) cout <<"Строка и столбец совпадают";
}

Что я делаю не так?
  • Вопрос задан
  • 127 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
lastuniverse
@lastuniverse
Всегда вокруг да около IT тем
Исправил ответ. Заменил ваш двойной цикл с i,j в сравнении строки со столбцом на одинарный цикл. Матрица ведь квадратная?)
...
bool str= true;
...
for (int i = 0; i < a; i++) {
    if (arr[i][b-1] != arr[b-1][i]) str = false;
}
...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы