Не работает программа на обычном СИ

Рейтинг: 0Ответов: 1Опубликовано: 27.10.2014

Нашла решение задачи на С. Условие такое:

Для заданной матрицы размером 4х4 найти такие k, что k-я строка матрицы совпадает с k-м столбцом. Найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент.
Проблема в том, что на размере 8х8 что-то ещё получается, а на 4х4 вообще ерунда.

Вот мой код:

#include <stdio.h>

int main(int argc, char* argv[])
{

 int     matrix[8][8] = {
                           { 2, 7, 2, 7, 1, 4, 0, 3 },
                           { 1, 0, 7, 6, 0, -8, 3, 5 },
                           { 2, 7, 1, 8, 1, 4, 9, 3 },
                           { 9, 2, 8, 5, 2, 0, 0, 6 },
                           { 7, 1, 1, 3, 9, 3, 9, 1 },
                           { 8, 2, 4, 9, 1, -6, 4, 9 },
                           { 0, 3, 9, 0, 9, 4, 8, 8 },
                           { 1, 8, 3, 2, 8, 2, 8, 0 }
                           };
    int     i, j, iSumm; 
    bool    bFlag;

    printf("k = ");
    for (i = 0; i < 8; i++)
    {

        bFlag = true;
        for (j = 0; j < 8; j++)
        {

            if (matrix[i][j] != matrix[j][i])
            {
                bFlag = false;
                break;
            }
        }

        if (bFlag) printf("%d ", i);
    }

    printf("\n\n");
    for (i = 0; i < 8; i++)
    {

        bFlag = false;
        iSumm = 0;
        for (j = 0; j < 8; j++)
        {

            if (matrix[i][j] < 0) bFlag = true;

            iSumm += matrix[i][j];
        }

        if (bFlag) printf("Сумма элементов строки #%d = %d\n", i, iSumm);
    }

    return 0;
}

Пожалуйста, если можно, то помогите ещё со второй задачей. Я тут сколько пыталась, ничего не получилось. Вот условие: проверить, все ли строки матрицы упорядочены по убыванию. Если нет, найти первую неупорядоченную строку и упорядочить.

Ответы

▲ 1

При поиске одинаковых строк и столбца необходим не вложенный цикл как у Вас, а ОДНОВРЕМЕННОЕ прохождение по очередным строке и столбцу.