Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
2 / 2 / 2
Регистрация: 14.12.2013
Сообщений: 120
1

Вывести на экран матрицу порядка n (n=1..15) - элементы выводятся не в виде матрицы, а в виде строки

03.05.2014, 11:06. Просмотров 1506. Ответов 7
Метки нет (Все метки)

Здравствуйте. Нужно вывести на экран матрицу порядка n (n=1..15). Я написал программу, но при этом на экран элементы выводятся не в виде матрицы, а в виде строки. Можете подсказать, в чем ошибка?
Код программы приведен ниже?
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
#include <stdio.h>// îáúÿâëåíèå çàãîëîâî÷íûõ ôàéëîâ
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <locale.h>
#define SIZE 15
int main()// ãëàâíàÿ ôóíêöèÿ; íà÷àëî ïðîãðàììû
{   
setlocale(LC_ALL,"Russian");//ôóíêöèÿ, íåîáõîäèìàÿäëÿîòîáðàæåíèÿðóññêîãîÿçûêàâêîíñîëè
int i, j, n, a[SIZE][SIZE]; 
char c;
    printf ("Õîòèòå âûïîëíèòü ïîèñê èíäåêñîâ íåíóëåâûõ ýëåìåíòîâ ìàññèâà?\n 1) Äà\n 2) Âûõîä\n");
    scanf("%d",&c);
    switch (c)
{case 1:
 
    {
 
printf("Ââåäèòå ÷èñëî îò 1 äî 15 \n");
    scanf("%d",&n); 
if((n<0)||(n>15))
{
printf("Íåîáõîäèìî ââåñòè ÷èñëî n â èíòåðâàëå îò 1 äî 15");
return 0;
    }
else
 
for (i=0;  i<n; i++)
 
    {
        for (j=0;  j<n;  j++)
{
printf("Ââåäèòå ýëåìåíòû ìàòðèöû \n"); // çàïîëíåíèå ìàññèâà ñëó÷àéíûìè ÷èñëàìè
printf("a[%d][%d]=",i+1,j+1);
scanf("%d",&a[i][j]);
//if((j=n-1)&&(i=n-1))
//printf("%4d", a[i][j]);
}
        printf("\n");
    }
    for (i=0;  i<n; i++)
 
    
        for (j=0;  j<n;  j++)
{printf("%4d\n", a[i][j]);}}
 
 
    for (i=0;  i<n; i++)
 
    {
        for (j=0;  j<n;  j++)     { 
    if (a[i][j]!=0)
    {printf("Èíäåêñ i ðàâåí%d\n",i+1);
    printf("Èíäåêñ j ðàâåí%d\n",j+1);
}}break;}
case 2:
    {printf("Áóäåò âûïîëíåí âûõîä èç ïðîãðàììû. Íàæìèòå ëþáóþ êëàâèøó");
    
    break;}
    default: printf("Íåîáõîäèìî âûáðàòü äåéñòâèå 1 èëè äåéñòâèå 2. Íàæìèòå ëþáóþ êëàâèøó ");
 
}}
Код, с помощью которого я пытаюсь вывести матрицу:
C++
1
2
3
4
5
for (i=0;  i<n; i++)
 
    
        for (j=0;  j<n;  j++)
{printf("%4d\n", a[i][j]);}}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2014, 11:06
Ответы с готовыми решениями:

Вывести на экран в виде матрицы все элементы заданного двумерного массива
Составить программу которая выводит на экран в виде матрицы элементы двумерного массива, состоящего...

Ввести элементы двумерного массива с клавы С++.Нужно вывести его на экран в виде таблицы, в конце каждой строки надо вывести самый большой элемент
Вот мой код : #include &lt;iostream&gt; #include &lt;Windows.h&gt; using namespace std; using std::cout;...

Вывести матрицу на экран в заданном виде
подскажите как вывести матрицу (А) на экран в виде: 2 2 2 2 и.т.п........ #include &quot;stdafx.h&quot;...

Задан неориентированный невзвешенный граф в виде матрицы смежности. Вывести эту матрицу в виде списка ребер
Помогите пожалуйста.задал неориентированный невзвешенный граф в виде матрицы смежности. помогите...

7
4 / 4 / 2
Регистрация: 01.05.2014
Сообщений: 24
03.05.2014, 11:16 2
Лучший ответ Сообщение было отмечено zaqwerty как решение

Решение

с помощью cout не проще вывести?

C++
1
2
3
4
5
6
7
8
9
#include <iostream> //добавь в начало проекта
using namespace std;
 
 
for (i=0;  i<n; i++)
 
    
        for (j=0;  j<n;  j++)
{ cout<<a[i][j]<<" ";} cout<<endl;}
1
6913 / 5978 / 2709
Регистрация: 14.04.2014
Сообщений: 25,504
03.05.2014, 11:20 3
C++
1
2
3
4
5
for (i = 0; i < n; i++)
{
    for (j = 0; j < n; j++) printf("%4d", a[i][j]);
    printf("\n");
}
1
2 / 2 / 2
Регистрация: 14.12.2013
Сообщений: 120
03.05.2014, 11:57  [ТС] 4
DmitryDidenko, спасибо, действительно помогло!
Есть еще один вопрос по данном циклу:
C++
1
2
3
4
5
6
7
8
 for (i=0;  i<n; i++)
 
    {
        for (j=0;  j<n;  j++)     { 
    if (a[i][j]!=0)
    {printf("Индекс i равен%d\n",i+1);
    printf("Индекс j равен%d\n",j+1);
}}
С его помощью я вывожу индексы ненулевых элементов, а мне нужно выводить сами ненулевые элементы. Я пытался сделать это с помощью данного цикла, но почему-то у меня выводятся только элементы первой строки:
C++
1
2
3
4
5
6
7
8
for (i=0;  i<n; i++)
 
    {
        for (j=0;  j<n;  j++)     { 
    if (a[i][j]!=0)
    {printf("Ýëåìåíò a[%d][%d]=%d\n",i+1,j+1,a[i][j]);
    
}}
А мне нужно, чтобы выводились все ненулевые элементы матрицы. Не знаю, в чем ошибка

Добавлено через 1 минуту
nmcf, спасибо, ваш ответ тоже помог

Добавлено через 28 минут
nmcf, быть может, вы знаете ответ на вопрос?
0
4 / 4 / 2
Регистрация: 01.05.2014
Сообщений: 24
03.05.2014, 12:28 5
Цитата Сообщение от zaqwerty Посмотреть сообщение
С его помощью я вывожу индексы ненулевых элементов, а мне нужно выводить сами ненулевые элементы. Я пытался сделать это с помощью данного цикла, но почему-то у меня выводятся только элементы первой строки:
ну ты выводишь i+1, j+1 , а нужно a[i][j] выводить

Добавлено через 7 минут
C++
1
2
3
4
5
6
7
for (i = 0; i < n; i++)
{
    for (j = 0; j < n; j++) 
if (a[i][j]!=0)
    printf("%4d", a[i][j]);
    printf("\n");
}
1
2 / 2 / 2
Регистрация: 14.12.2013
Сообщений: 120
03.05.2014, 13:38  [ТС] 6
DmitryDidenko, но мне нужно вывести не только значения элементов, но и сами элементы с индексами. Должно быть в таком виде:
При n=2 (задает порядок матрицы):
Кликните здесь для просмотра всего текста
a[1][1]=0
a[1][2]=3
a[2][1]=6
a[2][2]=21

0 3
6 21

Элемент a[1][2]=3
Элемент a[2][1]=6
Элемент a[2][2]=21


Как-то так
0
4 / 4 / 2
Регистрация: 01.05.2014
Сообщений: 24
03.05.2014, 14:59 7
У вас выше вроде правильно написанно
1
2 / 2 / 2
Регистрация: 14.12.2013
Сообщений: 120
03.05.2014, 17:00  [ТС] 8
DmitryDidenko, в том то и дело, что не работает так Выводит только элементы первой строки матрицы не понимаю почему

Добавлено через 2 минуты
DmitryDidenko, странно, заработало все
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.05.2014, 17:00

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как вывести матрицу в виде матрицы, а не строки
матрица вбивается с руки. (то есть появляется надпись &quot;введите элемент матрицы &quot;). далее она должна...

Вычислить сумму наибольших элементов матрицы. Вывести на экран исходную матрицу в общепринятом виде и результат работы.
Дана целочисленная матрица A(N,M), где N=5 M=5. Вычислить сумму наибольших элементов матрицы....

Упорядочить по возрастанию элементы каждой строки матрицы и вывести ее в виде таблицы
Написать программу для решения следующей задачи: упорядочить по возрастанию элементы каждой строки...

Вывести все элементы массива в виде матрицы и вывести номер строки массива, в которой каждый элемент равен X.
Дан двумерный массив N=9, M=10; Вывести все элементы массива в виде матрицы и вывести номер строки...


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

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

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