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

Удаление заданого элемента матрицы,двумерные массивы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Обработка двумерного массива,наибольшее из значений элементов столбца http://www.cyberforum.ru/cpp-beginners/thread520281.html
Дана целочисленная квадратная матрица размера nxn, где 5≤n≤25. Программа должна быть разбита на несколько функций и обязательно содержать: 1. Функцию формирования исходного массива; 2. Функцию вывода исходного массива; 3. Одну или более функций, реализующих вычислительную часть алгоритма. Все функции должны содержать список параметров, причем массив (матрица) должен передаваться как параметр...
C++ разработать программу на си++ вычисления выходного значения функции Задание: разработать программу на си++ вычисления выходного значения функ-ции y = \operatorname{f} (x_1, x_2, x_3, x_4) = \frac{\operatorname{tg} (x_1 - x_3)}{127 + x_3} \cdot \operatorname{tg}(x_3 + x_4) Выходное значение и входные должны отображаться на экране в виде: X1= X2= X3= X4= Y= http://www.cyberforum.ru/cpp-beginners/thread520257.html
C++, сортировка диагоналей матрицы размероности n x n C++
Дана матрица размерностью n*n, содержащая целые числа. Отсортировать диагонали матрицы, параллельные побочной, по возрастанию элементов алгоритмом Шелла/методом вставок. Помогите хотя бы одним из методов. Добавлено через 4 часа 26 минут *******
Необходимо изменить размеры окна консоли C++
Приветствую. Необходимо изменить размеры окна консоли, допустим, на 50 * 50 средствами WinAPI, поэтому вот такой код system ("mode con cols=50 lines=50"); не подходит. Посмотрел MSDN, нашёл функцию SetConsoleWindowInfo.
C++ Написать программу, которая, согласно запросу пользователя, выводит информацию об абонентах http://www.cyberforum.ru/cpp-beginners/thread520223.html
нужно написать программу которая бы согласно запросу пользователя выводит информацию об абонентах, подключенных к одной АТС.
C++ Разбор числа Всем привет. Нужно разобрать число на две части. Первая часть(инструкция) - шестнадцатеричное число, вторая часть(операнд) - десятичное. Допустим имеем 0xA225. Инструкция - 0xA2, операнд - 25. Собственно, с этим разобрался, но сейчас стоит задача ещё и обрабатывать числа с плавающей точкой, допустим 0xA21.2 . Инструкция - 0xA2, операнд - 1.2 . Вот с этим разобраться не могу, есть мысль, вводить... подробнее

Показать сообщение отдельно
лизи
 Аватар для лизи
0 / 0 / 0
Регистрация: 14.11.2011
Сообщений: 104
24.03.2012, 23:19  [ТС]     Удаление заданого элемента матрицы,двумерные массивы
Цитата Сообщение от Raikerian Посмотреть сообщение
В чем сложность?
Найти строчку получается? Просто нужно реализовать сдвиг на кол-во элементов в строке, ведь в памяти компилятора массив написан в одну строчку (а кол-во строк заданных при вводе соответственно уменьшить на 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
27
28
29
30
31
32
void del(int arr[25][25],int *nl, int nc)//Удаление строки
{int i,j,max,temp,count[25];
 
for(i=0;i<*nl;i++)
count[i]=0;
 
for ( i=0; i<*nl; i++)
{
for ( j=0; j<nc; j++)
{
if (arr[i][j] != 0)
{
count[i] = count[i] + 1;
}
}
}
 
for ( i=0; i<*nl; i++) // Ищем строку с максимальным элементом
{
if (count[i] > max)
{
max = count[i];
temp = i; //Сохраняем номер строки
}
}
 
if (*nl-1!=i)
for (i=temp;i<*nl-1;i++) //Удаляем эту строку
for (j=0;j<nc;j++)
arr[i][j]=arr[i+1][j];
--*nl;
}
вот так выглядет мой код
в этом случае он просто удаляет первую строчку

а если код выглядит вот так
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
int del(int arr[25][25],int *nl, int nc)//Удаление строки
{int i,j,max,temp,count[25];
 
for(i=0;i<*nl;i++)
count[i]=0;
 
for ( i=0; i<*nl; i++)
{
for ( j=0; j<nc; j++)
{
if (arr[i][j] != 0)
{
count[i] = count[i] + 1;
}
}
}
 
for ( i=0; i<*nl; i++) // Ищем строку с максимальным элементом
{
if (count[i] > max)
{
max = count[i];
temp = i; //Сохраняем номер строки
 
}
}
 
 if (*nl-1!=i)
 for (i=temp;i<*nl-1;i++) //Удаляем эту строку
 for (j=0;j<nc;j++)
 arr[i][j]=arr[i+1][j];
 *nl--; return 0;
}
то он удаляет все строки кроме второй

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