Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамический массив 
:(
    Опции темы
Toyamatokanava
Дата 29.10.2012, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 29.10.2012
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Добрый день. У меня вопрос глупый, но может подскажите.) Как сделать так, чтобы он выводил массив в виде матрицы? То есть если размер матрицы задать 3 на 3, то она на экране будет выглядеть вот так:
 2 3 6
 4 5 8
 4 8 2


Цитата

#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <locale>
#include <iostream>
#include <iomanip>
using namespace System;
using namespace std;

int main()
{    
    setlocale(LC_ALL,"Russian");
 int shirina,dlinna,i,j,k ; // размер массива
    cout << "Ширина ";
    cin >> shirina; // получение от пользователя размера массива
    cout << "Длинна ";
  cin >> dlinna;
    int **massiv = new int*[shirina]; // Выделение памяти для массива
    for (int i = 0; i < shirina; i++)
   massiv[i]= new int[dlinna];
    
    for (int i = 0; i < shirina; i++)
    for (int j = 0; j < dlinna; j++)
  
   cin >> massiv[i][j];
  
  
  
  for (int i = 0; i < shirina; i++)
    for (int j = 0; j < dlinna; j++)
  for (int k = 0; k < shirina; k++)
  while(massiv[i][j] != massiv[shirina-1][dlinna-1])
  {
    if(k=shirina)
  {
    
  
    cout  << "Значение" << massiv[i][j]<<endl ;
  }
  else
  {
        cout  << "Значение " << massiv[i][j] ;
  
    }
  }

    _getch();
  //for (int i = 0; i < shirina; i++)
    //for (int j = 0; j < dlinna; j++)
  delete []massiv[i];
    delete [] massiv; // очистка памяти
    return 0;
 
 }



Это сообщение отредактировал(а) Toyamatokanava - 29.10.2012, 10:54
PM MAIL   Вверх
baldina
Дата 29.10.2012, 11:29 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



два цикла, по i и j
выводить пробел после каждого значения, новую строку после значений одной строки (т.е. во внешнем цикле):
Код

#include <iostream>

int main () {
  const int n=3, m=4;
  int matrix[n][m] = {{0}};
  for (int i=0; i < n; ++i) {
   for (int j=0; j < m; ++j) {
     std::cout << matrix[i][j] << ' ';
   }
   std::cout << std::endl;
  }
}


Добавлено через 2 минуты и 51 секунду
откуда же у вас аж четыре цикла...

PM MAIL   Вверх
Toyamatokanava
Дата 29.10.2012, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 29.10.2012
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Спасибо вам, благодаря вам я сделал то, что хотел.) Вот только мне не понятно почему вот этот код переносит цифры на следующую строку, когда номер цифры равен размеру массива. 
Код

for (int i=0; i < n; ++i) {
   for (int j=0; j < m; ++j) {
     std::cout << matrix[i][j] << ' ';
   }
   std::cout << std::endl;
  }



И что значат ' ' ?

Это сообщение отредактировал(а) Toyamatokanava - 29.10.2012, 11:57
PM MAIL   Вверх
baldina
Дата 29.10.2012, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



Цитата(Toyamatokanava @  29.10.2012,  11:54 Найти цитируемый пост)
И что значат ' ' ?

символ пробела

Цитата(Toyamatokanava @  29.10.2012,  11:54 Найти цитируемый пост)
не понятно почему вот этот код переносит цифры на следующую строку, когда номер цифры равен размеру массива

внутренний цикл выводит элементы строки, разделенные пробелом.
после вывода m элементов (фактически - полной строки матрицы) внутренний цикл завершается, после чего выполняется следующая строчка - перевод строки. шаг внешнего цикла (по строкам) завершается, начинается следующий шаг - вывод очередной строки

Добавлено через 2 минуты и 39 секунд
вообще "цифры" никуда не переносятся, производится последовательный вывод. при выводе "\n" или std::endl текущая позиция вывода переносится в начало новой строки
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0433 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.