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

задача: вывести цифры из матрицы по диагонали - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ программа по ооп на с++ http://www.cyberforum.ru/cpp-beginners/thread742027.html
Задание: В командной строке, а если нет, то в консольном меню вводятся имена файлов, которые содержат текст (какая-нибудь литература). Программа должна прочитать каждый файл и построить гистограмму согласно вариантам, используя однонаправленный связанный динамический список записей для хранения данных гистограммы. Предусмотреть функции печати гистограммы на экране и сохранения гистограммы в файл...
C++ Расположить матрицу в выделенном массиве Матрица А вводится извне (с клавиатуры, из файла) построчно; число строк велико и заранее неизвестно, но различных строк не более m. Расположить её в выделенном массиве; при этом повторяющиеся строки включать единожды. http://www.cyberforum.ru/cpp-beginners/thread742026.html
C++ программа по ооп на с++
пожалуйста, помогите написать программу на с++ по ооп, если можно блок схему и сноски работы программы условия: На рабочем поле одновременно могут находиться как фигуры, так и примитивы в любом количестве. Все, что находится на рабочем поле, может перемещаться, вращаться относительно точки, растягиваться и сжиматься, отражаться относительно оси, сохраняться в файле. Примитивы и фигуры можно...
C++ Выполнить перестановку элементов массива по схеме
В массиве A(n) наименьший элемент поместить на первое место, наименьший из оставшихся - на последнее место, следующий по величине - на второе место, следующий - на предпоследнее и так далее - до середины массива.
C++ Заполнить матрицу заданного размера числами 1,2,3,4 так, чтобы по горизонтали, вертикали и диагонали не было одинаковых рядом стоящих чисел. http://www.cyberforum.ru/cpp-beginners/thread742014.html
Заполнить матрицу заданного размера M(k,l) числами 1,2,3,4 так, чтобы по горизонтали, вертикали и диагонали не было одинаковых рядом стоящих чисел. попробуйте написать код в С++ пожалуйста
C++ Каждый из элементов массива заменить средним значением первых элементов этого массива. текущее сглаживание. Каждый из элементов xi массива X(n) заменить средним значением первых i элементов этого массива. подробнее

Показать сообщение отдельно
лыс
1 / 1 / 0
Регистрация: 04.11.2012
Сообщений: 50
22.12.2012, 16:03     задача: вывести цифры из матрицы по диагонали
Не могу решить задачу, для профессионалов очень проста: вывести числа из матрицы по диагонали
Привожу свой код

1313. К вопросу о спорте
Ограничение времени: 0.5 секунды
Ограничение памяти: 16 МБ
Уральские медики очень озабочены состоянием здоровья молодежи. Как показали исследования, многие талантливые студенты вместо того, чтобы играть в футбол, кататься на коньках или велосипедах, занимаются олимпиадами по программированию. Так они это еще и спортивным программированием называют! Ну какой же это спорт, сидеть перед монитором и думать по пять часов в день! И ладно бы только на соревнованиях два раз в год, так ведь при подготовке к очередному чемпионату у них на сидение за компьютером уходит по несколько дней в неделю! И пусть бы это были разгильдяи какие-то, так ведь лучшие студенты, говорят, что и на мировом уровне результаты показывают приличные — жалко молодежь!
Чтобы отучить студентов от вредной привычки часами сидеть у компьютеров, уральские медики придумали принципиально новую разработку — монитор с диагональной разверткой! В скором будущем его будут вручать победителям и призерам чемпионатов Урала. В специально разработанном квадратном мониторе электронный луч должен проходить экран не по горизонталям, а по диагоналям. Поскольку длины диагоналей разные, нестандартные параметры мерцания и нелинейные искажения изображения быстро отучат оболтусов пялиться в экран. Разумеется, им ничего не останется делать, кроме как идти и заниматься спортом. Проблема в том, что большинство видеокарт подают на вход монитору нормальную развертку. Для успешного внедрения нового типа монитора нужна программа-адаптер, которая преобразует квадратное изображение в формат, требуемый для ввода в квадратный монитор. Программа должна быть надежной и быстрой, поэтому её разработкой будут заниматься самые лучшие программисты — участники чемпионата Урала по спортивному программированию.
Исходные данные
В первой строке записано целое число N (1 ≤ N ≤ 100) — количество пикселей на стороне квадратного монитора. Далее идут N строк, в каждой по N целых чисел в пределах от 1 до 100, разделенных пробелом. Это изображение, которое выводит обычная видеокарта (как видно, глубина цветности у нового монитора небольшая, все равно нормальному программисту больше ста цветов и не надо).
Результат
На выходе преобразователя должна получиться последовательность для ввода в новый монитор. Пиксели нумеруются от левого верхнего угла, по диагоналям, слева-направо и снизу-вверх. Подробнее объяснять тут долго и неинтересно, посмотрите на пример, дальше сами догадаетесь.
Пример
исходные данные результат

4
1 3 6 10
2 5 9 13
4 8 12 15
7 11 14 16



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

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
#include <iostream>
 
using namespace std;
 
int main()
{
int i, j, b, c, N, a=1;
int *mas1=new int[60];
int *mas2=new int[60];
int **mas=new int*[100];
 for (i=0; i<=99; i++)
  mas[i]=new int [100];
 
cin >> N;
for (i=0; i<=N-1;i++)
 for (j=0; j<=N-1; j++)
  cin >> mas[i][j];
 
mas1[0]=mas[0][0];
for (i=0; i<=N-1; i++)
 {
b=i;
 while (b>=0)
 {
 j++;
 b--;
 while (j!=b)
 {
 mas1[a]=mas[b][j];
 a++;
 }
 if (b==j)
     j=0;
     break;
 
 }
 }
for(a=0;; a++)
 cout << mas1[a] << " " << endl;
 
    return 0;
}
 Комментарий модератора 
Правила форума п. 5.5: Запрещено размещать тему в нескольких разделах одновременно (кросспостинг), а также дублировать тему в одном разделе.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru