Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Продублировать путем перезаписи


Автор: Тинкивинки 10.5.2014, 20:44
Помогите пожалуйста. Заранее огромное спасибо. Дана целочисленная матрица А, состоящая из М строк и N столбцов. Продублировать путем перезаписи в новую матрицу В те столбцы, которые являются перестановкой чисел 1,2,...,M. Вывести на экран матрицу В или сообщение "Нет", если дублирования не было.

Автор: konshyn 10.5.2014, 23:31
Код

#include <stdio.h>
#include <string.h>



int main()
{
    const int m = 10;
    const int n = 13;
    int A[m][n];
    int B[m][n];
    int C[m];
    int i, j, z, l;
    
    /*
     * Здесь ввод матрицы. Как это делать, в задаче не сказано, поэтому сам напишешь
     */

    int flag = 1;
    l = 0;
    for (i = 0; i < n; i++)
    {
        memset((void *)C, 0, sizeof(C));
        for (j = 0; j < m; j++)
            if (A[j][i] <= m)
                C[A[j][i] - 1] = 1;
        flag = 1;
        for (j = 0; j < m; j++)
            if (C[j] == 0)
            {
                flag = 0;
                break;
            }
        if (flag)
        {
            for (j = 0; j < m; j++)
                B[j][l] = A[j][i];
            l++;
        }
    }

    if (l == 0)
    {
        printf("Нет\n");
        return 0;
    }

    for (i = 0; i < m; i++)
    {
        for (j = 0; j < l; j++)
            printf("%d ", B[i][j]);
        printf("\n");
    }
    return 0;
}


Разбирайся

Автор: bsa 12.5.2014, 11:34
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)