Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2018, 11:23   #1
RandoB
Новичок
Джуниор
 
Регистрация: 26.05.2018
Сообщений: 1
По умолчанию Генерирование двумерного массива

Доброго времени суток, столкнулся с такой проблемой, необходимо сгенерировать двумерный массив вида.
1 2 1
2 3 2
3 4 3
RandoB вне форума Ответить с цитированием
Старый 26.05.2018, 12:16   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,534
По умолчанию

И это всё ? Матрица всегда должна быть 3 *3 или только всегда квадратной ?
Код:
int mas[20][20] ;
int i,j,n,n2,l ;
void main()
{
  puts ("\n?");
  scanf ("%d",&n) ;
  n2=(n+1)/2 ;
  printf ("%d\n",n2) ;
  for (i=0;i<n;i++)
    for (j=0;j<n2;j++)
       {
	  l = i + j + 1 ;
	  mas[i][j] = l ;
	  mas[i][n-j-1] = l ;
       }
  for (i=0;i<n;i++)
    { puts (" ") ;
      for (j=0;j<n;j++)
      printf (" %2d",mas[i][j]) ;
     }
  getch () ;
}

Последний раз редактировалось digitalis; 26.05.2018 в 12:19.
digitalis вне форума Ответить с цитированием
Старый 01.06.2018, 03:00   #3
c3nwen
 
Аватар для c3nwen
 
Регистрация: 01.06.2018
Сообщений: 9
По умолчанию

Код:
#include <iostream>
void main()
{
	int arr[3][3];
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			arr[i][j] = j+1;
			std::cout << arr[i][j] << " ";
		}
		std::cout << std::endl;
	}
	system("pause");
}

Последний раз редактировалось c3nwen; 01.06.2018 в 03:05.
c3nwen вне форума Ответить с цитированием
Старый 01.06.2018, 07:41   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от c3nwen Посмотреть сообщение
arr[i][j] = j+1;
совершенно не то.
Вы хоть бы попробовали, что Ваш код возвращает (https://ideone.com/Nihkn9).

и сравните вашу матрицу
1 2 3
1 2 3
1 2 3

и исходную.
никаких различий не видно?

тем более непонятно, зачем писать свой неверный вариант, когда выше digitalis предложил вариант решения задачи!

Последний раз редактировалось Serge_Bliznykov; 01.06.2018 в 07:48.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.06.2018, 14:28   #5
c3nwen
 
Аватар для c3nwen
 
Регистрация: 01.06.2018
Сообщений: 9
По умолчанию

Не судите сильно строго=) несколько дней, как начал изучать программирование, тренируюсь с массивами. Вот такой вариант вроде должен более-менее подойти=) Размер матрицы можно менять, в данном случае поставил 8х8:

Код:
#include <iostream>
using namespace std;
void main()
{
	setlocale(LC_ALL, "Russian");
	int rows = 8, cols = 8;
	int **arr = new int*[rows];
	
		for (int i = 0; i < rows; i++)
		{
			arr[i] = new int[cols];
			for (int j = 0; j < cols; j++)
			{
				if (j % 2 == 0) arr[i][j] = 1;
				if (i != 0) arr[i][j] = i + 1;
				if (j % 2 != 0) arr[i][j] = i + 2;
				cout << arr[i][j] << " ";
			}
			delete[] arr[i];
			cout << endl;
		}
		
	delete[] arr;
	system("pause");
}
Если есть какие-либо косяки в коде - буду благодарен за разъяснения!=) Спасибо.

Последний раз редактировалось c3nwen; 01.06.2018 в 14:45.
c3nwen вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обнулить элементы строки двумерного массива, содержащей наибольшее количество элементов одномерного массива griignat Помощь студентам 1 22.11.2011 20:04
генерирование массива случайных чисел Якъ Помощь студентам 3 14.11.2010 11:38
Сортировка двумерного массива Dwaight$ Помощь студентам 1 27.05.2009 03:14
Вывод двумерного массива pancho Общие вопросы Delphi 10 25.01.2009 23:31