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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
Bi-2
0 / 0 / 0
Регистрация: 24.02.2010
Сообщений: 17
#1

Вывести матрицу на экран в заданном виде - C++

04.05.2010, 18:53. Просмотров 1879. Ответов 1
Метки нет (Все метки)

подскажите как вывести матрицу (А) на экран в виде:
2 2
2 2
и.т.п........
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <Math.h>
 
using namespace std;
 
const int nmax = 100;                          //Максимальное количество строк и столбцов в матрице
 
//объявление функций
 
int vvod(int[nmax][nmax]);                     //функция ввода матрицы
int kolstolb(int, int[nmax][nmax]);            //функция подсчета числа столбцов хотя бы с одним нулем
int seria(int, int[nmax][nmax]);               //функция поиска строки с самой длинной серией одинаковых элементов
  
//главная функция программы
void main()
{
    //Объявление переменных
    int n;                                     //число строк и столбцов в матрице
    int k;                                     //число столбцов, содержащих хотя бы один нулевой элемент
    int i;                                     //номер строки, в которой находится самая длинная серия одинаковых элементов
    int A[nmax][nmax];                         //целочисленная прямоугольная матрица
    n = vvod(A);                               //вызов функции ввода матрицы
    k = kolstolb(n, A);                        //вызов функции подсчета количества столбцов с нулевыми элементами
     
 
                                               //вывод "Число столбцов хотя бы с одним нулевым элементом = k"
    cout<<"Chislo stolbcov hotya bi s odnim nulevim elementom = "<<k<<endl;
    i = seria(n, A);                           //вызов функции поиска строки с самой длинной серией одинаковых элементов
                                               //вывод "Самая длинная серия одинаковых элементов находится в строке i"
    cout<<"Samaya dlinnaya seria odinakovih elementov nahoditsya v stroke "<<i<<endl;
     cout<<"vdvd = "<<A[nmax][nmax]<<endl;
}
 
//функция ввода матрицы
//выходные параметры:
//n - число строк и столбцов матрицы
//A - квадратная целочисленная матрица
int vvod(int A[nmax][nmax])
{
    int i,j;                                   //переменные цикла
    int n;                                     //число строк и столбцов матрицы
    do                                         //выполнить (начало цикла)
    {
        cout<<"Vvedite chislo strok i stolbcov matrici"<<endl;  //вывод "Введите число строк и столбцов матрицы"
 
        cin>>n;                                //ввод n (считать с клавиатуры)
        if (n<=0 || n>nmax)                    //если n меньше или равно 0 или больше nmax
                                               //вывести "Число элементов должно быть между 1 и nmax" 
            cout<<"Chislo elementov dolzno bit' mezdu 1 i "<<nmax<<endl;
 
    } while (n<1 || n>nmax);                   //пока n не будет в пределах от 1 до nmax
    for (i=0; i<n; i++)                        //цикл от 0 до n-1
        for (j=0; j<n; j++)                    //цикл от 0 до n-1
        {
            cout<<"Vvedite element ["<<i+1<<", "<<j+1<<"] ";   //вывод "Введите элемент i+1, j+1"
  
            cin>>A[i][j];                       //ввод i,j-го элемента матрицы
            
            
        }
        
    return n;                                  //функция возвращает n - число строк и столбцов матрицы
 
}
 
//функция подсчета числа столбцов хотя бы с одним нулевым элементом
//входные параметры:
//n - число строк и столбцов матрицы
//A - матрица
//выходной параметр - число столбцов хотя бы с одним нулевым элементом
int kolstolb(int n, int A[nmax][nmax])
{
    int i,j;                                   //переменные цикла
    int k = 0;                                 //число столбцов хотя бы с одним нулевым элементом
    for (j=0; j<n; j++)                        //цикл (по всем столбцам матрицы)
    {
        i=0;                                   //начальный номер строки
        while (i<n && A[i][j]!=0)              //пока не достигнута последняя строка или не найден нулевой элемент
            i++;                               //увеличиваем i (номер строки)
        if (i<n)                               //если не достигнута последняя строка (т.е. нулевой элемент найден)
            k++;                               //увеличиваем k (число столбцов хотя бы с одним нулевым элементом)
    }
    return k;                                  //возвращаем k
}
 
//функция поиска строки с самой длинной серией одинаковых элементов
//входные параметры:
//n - число строк и столбцов матрицы
//A - матрица
//выходной параметр - номер строки с самой длинной серией нулевых элементов
int seria(int n, int A[nmax][nmax])
{
    int i,j;                                   //переменные цикла
    int k;                                     //текущее кол-во одинаковых элементов в серии
    int kmax=1;                                //максимальное количество одинаковых элементов в серии
    int knum=0;                                //номер строки с макс. числом одинаковых элементов в серии
    for (i=0; i<n; i++)                        //цикл по все строкам
    {
        k=1;                                   //задаем начальное число одинаковых элементов в серии
        for (j=0; j<n-1; j++)                  //просматриваем всю строку
            if (A[i][j]==A[i][j+1])            //если два соседних элемента одинаковы
                k++;                           //увеличиваем k на 1
            else                               //иначе
            {
                if (k>kmax)                    //если k>kmax
                {
                    kmax=k;                    //теперь kmax=k
                    knum=i;                    //а номер строки i
                }
                k=1;                           //снова задаем начальное число одинаковых элементов в серии
            }
        if (k>kmax)                            //проверям k также после просмотра всей строки (если серия включает
        {                                      //последний элемент строки)
            kmax=k;
            knum=i;
        }
    }
    return knum+1;                             //возвращаем номер строки с самой длинной серией
 
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.05.2010, 18:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести матрицу на экран в заданном виде (C++):

Вывести матрицу в заданном виде - C++
Требуется создать квадратную матрицу 9х9, заполнить и вывести в таком виде: 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 ...

Вывести на экран матрицу порядка n (n=1..15) - элементы выводятся не в виде матрицы, а в виде строки - C++
Здравствуйте. Нужно вывести на экран матрицу порядка n (n=1..15). Я написал программу, но при этом на экран элементы выводятся не в виде...

Вывести на экран числа в заданном диапазоне в виде матрицы - C++
41 42 43 44 ... 50 51 52 53 54 ... 60 61 62 63 64 ... 70 71 72 73 74 ... 80 Заранее благодарю.

Вычислить и вывести на экран в виде таблицы значение заданной функции на заданном интервале с заданным шагом - C++
Привет! Помогите пожалуйста решить задачку. С массивами и матрицей разобрался, а уравнения ни в какую. 1) Вычислить и вывести на...

Заполнить случайными числами матрицу А(mxn) и В(mxn) и вывести их на экран в виде таблицы - C++
Заполнить случайными числами матрицу А(mxn) и В(mxn) и вывести их на экран в виде таблицы, окрасив элементы главных диагонали красным...

Вывести строки таблицы в заданном виде - C++
Нужно вывести строки таблицы в таком виде 0 0 1 0 1 2 0 1 2 3 0 1 2 3 4 0 1 2 3 4 5

1
yanyk1n
4329 / 1460 / 152
Регистрация: 12.03.2009
Сообщений: 5,310
04.05.2010, 18:57 #2
C++
1
2
3
4
5
6
7
8
9
10
11
void print(int** mas, int N)
{
 for (int i = 0; i < N ; i++)
 {
  for (int j = 0; j < N; j++)
  {
   cout << mas[i][j] << " ";
  }
  cout << endl;
 }
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.05.2010, 18:57
Привет! Вот еще темы с ответами:

Вывести название игральной карты в заданном виде - C++
Помогите, пожалуйста!!! Смоделировать выбор &quot;наугад&quot; одной карты из полного набора игральных карт, включающего 4 масти (&quot;пики&quot;,...

Вывести в виде таблицы значения функции в заданном интервале - C++
Здравствуйте.Возникла проблема при компиляцие программы. Задание: Вычислите и выведите на экран в виде таблицы значения функции F в...

Вывести матрицу в виде таблицы - C++
Помогите, пожалуйста, переделать программу, чтобы &quot;переделанный массив&quot;, коротая получается в виде строки, записать матрицой. Новый массив...

Как вывести матрицу в виде таблицы? - C++
Есть такое задание: Задана целочисленная квадратная матрица размера 4х4. Найти сумму элементов главной диагонали данной матрицы. У...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru