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

Обработка двумерного числового массива - C++

Восстановить пароль Регистрация
 
Wild_Sound
0 / 0 / 0
Регистрация: 30.03.2014
Сообщений: 3
30.03.2014, 14:49     Обработка двумерного числового массива #1
Программа должна:
- Вычислить сумму всех положительных элементов;
- Найти максимальный по модулю элемент;
- Удалить строку с этим элементом.
Отладку программы провести на матрице:

1.6 |1.9 | -4.6 | 0.9 | 6.1
9.7 | -10.0 | 1.1 | 5.0 | -0.6
6.6 | 7.1 | -1.0 | -4.0 | 5.9
4.3 | -4.5 | 0.6 | -8.5 | 5.2
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2014, 14:49     Обработка двумерного числового массива
Посмотрите здесь:

обработка двумерного массива.С++ C++
ОБРАБОТКА ДВУМЕРНОГО МАССИВА C++
Для заданного двумерного числового массива подсчитать количество таких столбцов... C++
Для заданного двумерного числового массива подсчитать количество таких строк, в которых положительных элементов больше, чем отрицатель-ных. C++
Обработка двумерного массива C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5953 / 5558 / 1787
Регистрация: 18.12.2011
Сообщений: 14,204
Завершенные тесты: 1
30.03.2014, 14:56     Обработка двумерного числового массива #2
Посмотрите сначала, что уже есть на форуме,
например
Дана действительная матрица размера 3*3. Найти сумму наибольших значений строки
Wild_Sound
0 / 0 / 0
Регистрация: 30.03.2014
Сообщений: 3
30.03.2014, 15:19  [ТС]     Обработка двумерного числового массива #3
Ну тут я еще могу представить, но вот удалить строку с наибольшим элементом по модулю) подскажите пожалуйста)

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
43
44
45
46
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <windows.h>
double Ymnojenie(double s1[10][10],int n);
double Summa(double s1[10][10],int n);
void OutPutMatrica(double s1[10][10],int n);
void Transponirovat1(double s1[10][10],int n);
using namespace std;
 
int main()
{
 setlocale(LC_CTYPE,"Russian");
 SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
 
 int n=3,i,j,m=3;
 double Ymnojenie1;
 double Sum1;
 double s1[10][10];
 
 s1[0][0]=1.6;   s1[0][1]=1.9;  s1[0][2]=-4.6;  s1[0][3]=0.9;  s1[0][4]=6.1
 s1[1][0]=9.7;   s1[1][1]=-10.0;  s1[1][2]=1.1;  s1[1][3]=5.0; s1[1][4]=-0.6
 s1[2][0]=6.6;    s1[2][1]=7.1;  s1[2][2]=-1.0;   s1[2][3]=-4.0; s1[2][4]=5.9
 s1[3][0]=4.3;    s1[3][1]=-4.5;  s1[3][2]=0.6;   s1[3][3]=-8.5; s1[3][4]=5.2
 
 OutPutMatrica(s1,n);
 cout<<endl;
 
 Sum1=Summa(s1,n);
 cout<<"Сумма всех положительных элементов = "<<Sum1<<endl<<endl;
 
}
 
double Summa(double s1[10][10],int n)
{
    double Summ=0;
    int i,j;
    for (i=0;i<=n;i++) for(j=0;j<=n;j++) if(s1[i][j]>0) Summ=Summ+s1[i][j];
    return Summ;
}
 
    for (r = 0; r <= n; r++, printf("\n"))
        for (c = 0; c < n; c++)
            printf("%5.1f ",s1[r][c]);
}
Лев Борисов
2 / 2 / 0
Регистрация: 14.02.2013
Сообщений: 99
30.03.2014, 15:30     Обработка двумерного числового массива #4
Т.е. "удалить строку"? Может просто занулить? А уж если удалять, так тут вторая матрица нужна размером 5x3, чтобы в неё переписать все строки, кроме содержащей максимальный по модулю элемент. Как думаешь?
(Ну или сделать эту матрицу динамической)
Wild_Sound
0 / 0 / 0
Регистрация: 30.03.2014
Сообщений: 3
30.03.2014, 15:35  [ТС]     Обработка двумерного числового массива #5
Только как правильно написать чтобы строка с наиб. по мод. элементу удалилась?))
Anton_Kretov
 Аватар для Anton_Kretov
89 / 51 / 7
Регистрация: 26.06.2013
Сообщений: 179
30.03.2014, 16:03     Обработка двумерного числового массива #6
Можно обнулить ее. Удалить не получится: вы уже зарезервировали память под определенное число элементов. Вариант такой - создать еще один двумерный массив и скопировать туда все данные, кроме той строки с наибольшим по модулю элементом. Это реально.
Yandex
Объявления
30.03.2014, 16:03     Обработка двумерного числового массива
Ответ Создать тему
Опции темы

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