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

Удалить столбец матрицы(а не просто невыводить) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Поменять знак всех локальных максимумов http://www.cyberforum.ru/cpp-beginners/thread96277.html
Дана матрица размера M на N. Элемент матрицы называется ее локальным максимумом, если он больше всех окружающих его элементов. Поменять знак всех локальных максимумов данной матрицы на противоположный. При решении допускается использовать вспомогательную матрицу. Задача на С
C++ Найти количество элементов Дано целое число N и набор из N целых чисел. Найти количество элементов, расположенных перед первым минимальным элементом. Масив не использовать. Задача С http://www.cyberforum.ru/cpp-beginners/thread96273.html
C++ Сформировать новый масив
Дан массив A размера N. Сформировать новый массив B того же размера по следующему правилу: элемент BK равен сумме элементов массива A с номерами от 1 до K.
Повернуть матрицу C++
Дана квадратная матрица A порядка M. Повернуть ее на угол 90° в отрицательном направлении, то есть по часовой стрелке (при этом элемент A1,1 перейдет в A1,M, элемент A1,M — в AM,M и т. д.). Вспомогательную матрицу не использовать. Задача на С
C++ число -> Строка??? Соединение строк??? http://www.cyberforum.ru/cpp-beginners/thread96264.html
Как кинуть число (int) в строку??? (например двоичное число: 10001) И как соединить эти строки??? (string a="1001" и string b="10011") Заранее, огромное спасибо!!! Добавлено через 4 минуты Так, соединение строк я нашел --> stcat(str1,str2) Помогите с числом!!!
C++ Удаление символов из слова. Дана строка символов. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами. Удалить из каждого слова символы, не являющиеся буквами. Напечатать каждое слово строки на отдельной строчке.Ответ желательно получить завтра с утра :)Заранее спасиб.Да,задача на С++. подробнее

Показать сообщение отдельно
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
17.02.2010, 12:52     Удалить столбец матрицы(а не просто невыводить)
НУ, я думаю, все тут понимают, что
int mass [3] [5]= {{1, 2, 3, 4, 5}, {6, 7, 8, 9, 0 }, {11, 12, 13, 14, 15}} ;

есть просто-напросто одномерный (условно, конечно) массив вот такой
1 2 3 4 5 6 7 8 9 0 11 12 13 14 15

НАша задача получить адрес элемента 1
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
#include <stdio.h> 
#include <string.h> 
#include <ctype.h> 
#include <stdlib.h> 
int main () {
 int mass [3] [5]= {{1, 2, 3, 4, 5}, {6, 7, 8, 9, 0 }, {11, 12, 13, 14, 15}} ; 
 for (int i= 0; i< 3; i++) {
  for (int j= 0; j< 5; j++) {
   printf ("%d ", mass [i] [j]);
  }
  printf ("\n");
 }
 
 printf ("%x\n", &mass [0] [0]);
 
 int* ukaz= &mass [0] [0];
 for (int i= 0; i< 15; i++) {
  printf ("%d ",*ukaz);
  ukaz++;
 }
 printf ("\n");
 
 
 getchar ();
 return 0;
}
Ну вот, а теперь имеем как бы "строчку" и мы можеи именно удалить из неё один стобюец никуда её не копируя. Для этого надо просто напросто перебором добьраться до первого "ненужного" элемента и сдвинуть все элементы, которые расположены за ним и перед следующим ненужным на оджну единицу влево. Потом на 2 единицы, потом на три и так далее.
то есть мы действительно удалим столбец.

Но возникает вопрос: а как быть с размерностью массива? Ведь она как была [3] [5] так она [3] [5], хотя одного столбца в ней не будет. ТО есть тут замучаешься корректно выводить значения.

То есть проще сделать, как было предложено. Копируем массив в другое место, удаляя ненужный столбец вот и всё.
 
Текущее время: 17:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru