С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Agfa

Двумерный массив в С++

25.09.2011, 23:54. Показов 543. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание: В матрице А найти строку с максимальным средним арифметическим отрицательных элементов, сформировать матрицу Д, исключив из А найденную строку и заменив все нулевые элементы на средние арифметические значения строк с этими нулевыми элементами

/
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
* Programma obrabotki matricy
Sredstva razrabotki: Turbo C++ vers.3.0*/
 
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
 
/**********Vneshnie peremennye:*******/
 
int m, n, maxi; 
 
float **matrix, *s, *r, max;
 
 
/**********Funkcija vvoda:************/
 
void input_matrix(void)
{
for (int j = 0; j < m; j++)
    for (int i = 0; i < n; i++)
   {
   cout <<"- Input A[" << j << "][" << i << "]:";
   cin >> *(*(matrix + j) + i) ;
   }
}
 
/************Zamena nulej:**********/
 
void replace(void)
{
float p=0.0;int i1; int j1;
for (int j = 0; j < m; j++)
    {
    for (int i = 0; i < n; i++)
    {
      p+=*(*(matrix+j)+i);
if(*(*(matrix+j)+i)==0)
     {i1=i;j1=j;}
      }
   *(s+j) = p/n;
   *(*(matrix+j1)+i1)=*(s+j);
   p = 0.0;
 
   }
return;
}
/************Poisk stroki:**********/
 
void search(void)
{
float p; int l;
for (int j = 0; j < m; j++)
    {
        l=0;
        p=0.0;
    for (int i = 0; i < n; i++)
    {
 
    if((*(*(matrix+j)+i))<0)
         { 
            p+=*(*(matrix+j)+i);
            l++;
             }
      }
     if(l!=0)
        *(s+j) = p/l; 
     if(*(s+j)<max)
    {
        max=*(s+j);
        maxi=j;
    }
 
   }
return;
}
 
/************************************/
 
void main(void)
{
void vivod(int);
clrscr();
matrix = new float *[n];
for (int j = 0; j < m; j++)
    matrix[j] = new float[n];
cout << "Input size array A:" << endl;
cout << "- Count row M:" ;
cin >> m;
cout << "- Count column N:" ;
cin >> n;
cout << endl;
input_matrix();
replace();
search();
print(maxi);
cprintf("\n\n  Press any key.");
getch();
return;
}
 
/***********************************/
 
void print(int k)
{
cout<<endl;
cout<<"   k= "<<k<<endl;
cout << endl;
cout << "Max row = " << maxi << endl << "Average = " << max << endl << endl;
cout << "New array D: " << endl;
for(int j=0; j<m; j++)
    {
    if (j == k) continue;
    else
        for(int i=0; i<n; i++)
        cout << *(*(matrix+j)+i) << " ";
        cout << endl;
    }
cout << "Address array D[][]:" << endl;
for(j=0; j<m; j++)
    {
    if (j == k) continue;
    else
        for(int i=0; i<n; i++)
        cout << ((matrix+j)+i) << " ";
        cout << endl;
    }
return;
}
По идее, все должно работать. Но работает криво =(
Подскажите, что не так

 Комментарий модератора 
Используйте теги форматирования кода!
Миниатюры
Двумерный массив в С++  
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.09.2011, 23:54
Ответы с готовыми решениями:

Двумерный массив. Ввести двумерный массив, найти сумму элементов каждого столбца
Ввести двумерный массив, найти сумму элементов каждого столбца.

Двумерный массив. Заполнить и вывести двумерный массив БЕЗ использования цикла FOR
Заполнить ивывести двумерный массив БЕЗ использования цикла FOR очень срочно!!!

Создать двумерный массив, опираясь на другой двумерный массив
У меня есть такой массив 0 0 0 0 0 0 0 6 3 2 2 8 9 3 7 6 8 3 4 5 1 0 0 0 0 0 0 0 0 0 0 0 0...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.09.2011, 23:54
Помогаю со студенческими работами здесь

Сделайте, чтобы двумерный вектор обогнал двумерный массив при заполнении случайными числами
Всем привет! Попробовал сравнить время заполнения векторов в векторе и массивов в массиве (динамические) случайными числами, получаемыми...

Как можно вложить двумерный массив в двумерный?
Нужно написать программу перемножения двух матриц размерностью МxМ, элементы которых, матрицы размерностью КxК... Подскажите (желательно с...

Дан двумерный массив A N*N). Сформировать двумерный упорядоченныймассив (А 11<=A 12<= .<=A 23<=.<=A nn)
Дан двумерный массив A(N*N). Сформировать двумерный упорядоченный массив (А11&lt;=A12&lt;= ...&lt;=A23&lt;=...&lt;=Ann).

Двумерный массив преобразовать в двумерный List<T>
имеется матрица Single matr; Не важно как и откуда я ее заполняю, но на выходе выходит матрица из 4-х столбцов. После мне удобней...

Двумерный массив.Дан массив 5 х 5. Определить сумму элементов тех строк, где диагональный элемент равен нулю и записать их в отдельный массив.
помогите составить программу. во задание:Дан массив 5 х 5. Определить сумму элементов тех строк, где диагональный элемент равен нулю и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru