Форум программистов, компьютерный форум CyberForum.ru

Напечатать матрицу по k элементов в строке - C++

Восстановить пароль Регистрация
 
I_Masha_I
2 / 2 / 0
Регистрация: 14.10.2012
Сообщений: 53
29.10.2012, 11:55     Напечатать матрицу по k элементов в строке #1
Дана целочисленная матрица T(N, L), N<=7, L<=9. Напечатать матрицу по k элементов в строке (2<=k<=6).
При этом k<=L. Напечатать также номера строки столбцов.
Например при N = 2, L = 5, k = 3
для матрицы
7 7 7 7 7
8 8 8 8 8
печать должна быть такой:
ActionScript 3
1
2
3
4
5
6
7
   1   2   3
1  7   7   7
2  8   8   8
 
   4   5
1  7   7
2  8   8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include "stdafx.h"
#include <locale>
#include <iostream>
using namespace std;
 
void vvod_matrix(int **t,int n, int l)          
{
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<l;j++)
            cin>>t[i][j];
        cout<<endl;
    }
}
 
void vivod(int **t, int n, int k)        //вывод номеров строк и элементов матрицы
{
    for(int i = 0; i<n; i++, cout<<endl)
        {
            cout<<i+1<<" ";
            for (int j = 0; j<k; j++)
            {
                cout<<t[i][j]<<" ";
            }
        }
    cout<<endl;
}
 
int main()
{
    int n, l, **t, m, k, x, s;
    setlocale(LC_ALL, "Russian");
    cout<<"Ведите размерность матрицы: Количество строк = ";
    cin>>n;
    cout<<"Количество столбцов = ";
    cin>>l;
    m = n*l;
    x = 0;
 
    t = (int**)malloc(m*sizeof(int));   
    for(int i=0; i<m; i++)
        t[i]=(int*)malloc(m*sizeof(int));
    cout<<"Введите матрицу:"<<endl;
    vvod_matrix(t, n, l);
    cout<<"Введите k: ";
    cin>>k;
 
    while(?)                             //???
    {
        cout<<"  ";
        for (int j = x; j<k; j++) //цикл для вывода номеров столбцов
        {
            cout<<j+1<<" ";
        }
        cout<<endl;
        vivod(t, n, k);
        x+=k;               //???
    }
 
 
    system("PAUSE");
    return 0;
}
У меня получается вывести только первую часть, то есть вот это
ActionScript 3
1
2
3
   1   2   3
1  7   7   7
2  8   8   8
У меня проблема с выводом номеров столбцов во второй раз, я поставила вопросительные знаки в тех местах где я сомневаюсь
Помогите пожалуйста дописать программу
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2012, 11:55     Напечатать матрицу по k элементов в строке
Посмотрите здесь:

C++ Напечатать ту матрицу из двух, которая имеет минимальный след
В двумерном массиве все числа различны.В каждой строке находим мин.элемент,затем среди этим мин.элементов выбираем максимальный.Напечатать индексы. C++
переделать программу Pascal -> C++ (Восстановить исходную матрицу и напечатать ее по строкам) C++
C++ Заполнить матрицу случайными числами. На главной диагонали разместить суммы элементов, которые лежат на той же строке и том же столбце
C++ Рассматривая матрицу как вектор строк, упорядочить ее по количеству нечетных элементов в каждой строке
Дан целочисленный одномерный массив А, состоящий из 14 элементов. вычислить и напечатать сумму парши элементов C++
Сформировать квадратную матрицу; транспонировать матрицу и инвертировать порядок элементов каждой ее строки C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gregory_Mas
3 / 3 / 0
Регистрация: 06.10.2012
Сообщений: 26
29.10.2012, 12:42     Напечатать матрицу по k элементов в строке #2
Попробуй все сделать через вайл.
Т.е. будет:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
while (j!=(L+1))
{
for (int i=0; i<N; i++)
   {
      for (int k=0; k<3; k++)
      {
         cout<<T[i][j]<<" ";
         j++;
      }
cout<<endl<<endl;
}
cout<<endl<<endl;
}
Это должны вывестись элементы массива. Вывод индексов можно сделать по аналогии, только надо добавить условия, чтобы выводились 1 раз.
Yandex
Объявления
29.10.2012, 12:42     Напечатать матрицу по k элементов в строке
Ответ Создать тему
Опции темы

Текущее время: 09:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru