Почему не работает код? Матрицу 5x6 ввести с клавиатуры.Если все элементы или строки, или столбца равны между собой, то заменить их единичками

148
05 мая 2022, 20:40
#include <stdio.h>
#include <conio.h>
int main(int argc, char* argv[])
{
    int nstr=5, nstb=6, i, j;
    int a[4][4];
    printf("\nVvedite elementi massiva: \n");
    for (i = 0; i < nstr; i++) {
        for (j = 0; j < nstb; j++) {
            scanf_s("%d", &a[i][j]);
        }
    }
    
    for (i = 0; i < nstr; i++)
    {
        for (j = 0; j < nstb - 1; j++)
        {
            if (a[i][j] == a[i][j + 1] || a[i][j]==a[i+1][j]) {
                for (j = 0; j < nstb; j++)
                    a[i][j] = 1;
            }
        }
    }
    for (i = 0; i < nstr; i++) {
        for (j = 0; j < nstb; j++);
    }
            printf("\nnovi massiv: %d\n", a[i][j]);
    _getch();
    return 0;
}
Answer 1

https://ideone.com/8jEDVB:

int main(int argc, const char * argv[])
{
    int a[5][6];
    int equRow[5] = {1,1,1,1,1};
    int equCol[6] = {1,1,1,1,1,1};
    for(int row = 0; row < 5; ++row)
        for(int col = 0; col < 6; ++col)
        {
            printf("a[%d][%d] = ",row,col);
            scanf("%d",&a[row][col]);
        }
    for(int row = 0; row < 5; ++row)
    {
        for(int col = 0; col < 6; ++col)
            printf("%6d",a[row][col]);
        puts("");
    }
    for(int row = 0; row < 5; ++row)
    {
        for(int col = 0; col < 5; ++col)
            if (a[row][col] != a[row][col+1])
            {
                equRow[row] = 0;
                break;
            }
    }
    for(int col = 0; col < 6; ++col)
        for(int row = 0; row < 4; ++row)
        {
            if (a[row][col] != a[row+1][col])
            {
                equCol[col] = 0;
                break;
            }
        }
    for(int row = 0; row < 5; ++row)
        if (equRow[row])
            for(int col = 0; col < 6; ++col)
                a[row][col] = 1;
    for(int col = 0; col < 6; ++col)
        if (equCol[col])
            for(int row = 0; row < 5; ++row)
                a[row][col] = 1;
    puts("\n");
    for(int row = 0; row < 5; ++row)
    {
        for(int col = 0; col < 6; ++col)
            printf("%6d",a[row][col]);
        puts("");
    }

}
READ ALSO
Буфер не соответствует задаваемым параметрам.Проблемы с Dpi

Буфер не соответствует задаваемым параметрам.Проблемы с Dpi

Делаю программу которая поверх целевого окна будет рисовать то что мне нужно,но когда я рисую,отрисовка идет не на те координаты,которые...

277
error: no match for &#39;operator[]

error: no match for 'operator[]

Ошибка возникла на первом cout, полный текст ошибки:

128
Создать иерархию

Создать иерархию

Тема наследованиеЗадача -Разработать иерархическую структуру классов для обработки данных

240
Qt, потоки и объекты. Как правильно?

Qt, потоки и объекты. Как правильно?

Я много читал о том, как работать с потоками в QtКто-то наследуется от QThread и переопределяет void run();, кто-то наследует класс worker от QObject, связывает...

255