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

#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;
}

Ответы (1 шт):

Автор решения: Harry

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("");
    }


}
→ Ссылка