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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
hospik
1 / 1 / 0
Регистрация: 21.11.2011
Сообщений: 77
#1

В прямоугольной матрице каждый нулевой элемент заменить средним арифметическим значением ненулевых элементов той строки - C++

24.03.2012, 12:18. Просмотров 811. Ответов 6
Метки нет (Все метки)

В прямоугольной матрице каждый нулевой элемент заменить средним арифметическим значением ненулевых элементов той строки, в которой расположен данный нулевой элемент. Если в строке несколько нулевых элементов, то они должны быть заменены одним и тем же значением.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2012, 12:18     В прямоугольной матрице каждый нулевой элемент заменить средним арифметическим значением ненулевых элементов той строки
Посмотрите здесь:

В прямоугольной матрице каждый нулевой элемент заменить средним арифметическим значением - C++
В прямоугольной матрицы каждый нулевой элемент заменить средним арифметическим значением ненулевых элементов той строки в котором...

В прямоугольной матрице заменить каждый нулевой элемент на среднее арифметическое строки - C++
В прямоугольной матрице заменить каждый нулевой элемент на среднее арифметическое строки, в которой находится нулевой элемент. если таковых...

В массиве каждый элемент, равный нулю, заменить средним арифметическим всех элементов - C++
Создать числовой массив А.Значение N задается константой.Каждый элемент,равный нулю,заменить средним арифметическим всех элементов. Вывести...

Каждый элемент массива A[k] заменить средним значением первых k элементов массива - C++
Дан числовой массив A размера N. Каждый элемент массива A заменить средним значением первых k элементов массива. Что означает Каждый...

Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов. - C++
Заданный массив из 10 элементов. Массив Вы можем вводить одним из 2 способов: • с клавиатуры с помощью cin); • генерируя случайным...

Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов - C++
Размерность массива (100) Диапазон значений (-100 - +100) Заменить все элементы с отрицательными значениями средним арифметическим...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
24.03.2012, 12:43     В прямоугольной матрице каждый нулевой элемент заменить средним арифметическим значением ненулевых элементов той строки #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
float matrix[N][M]; 
 
for (int i=0;i<N;i++) {
    float s=0;
    float zero[M]; //номера элементов, которые равны 0
    int count=0;   //количество 0
    for (int j=0;j<M;j++) {
        if (matrix[i][j]==0) {
                             zero[count]=j;
                             count++;
                             }
        else s+=matrix[i][j];
        }
    }
    s/=M;
    for (int j=0;j<count;j++) {
        matrix[i][zero[j]]=s;        
    }
}
истина где-то рядом =)
Байт
Эксперт C
15686 / 10013 / 1504
Регистрация: 24.12.2010
Сообщений: 18,816
24.03.2012, 13:01     В прямоугольной матрице каждый нулевой элемент заменить средним арифметическим значением ненулевых элементов той строки #3
C
1
2
3
for(j=0, s=0; j<M; j++) s+= matrix[i][j];
s /= M;
for(j=0; j<M; j++) if (matrix[i][j]==0) matrix[i][j]=s;
Nekto, твой алгоритм лучше тем, что он однопроходный (те. быстрее), зато мой не требует дополнительной памяти. Извечная дилема...
Выбор - за ТС.
hospik
1 / 1 / 0
Регистрация: 21.11.2011
Сообщений: 77
26.03.2012, 20:01  [ТС]     В прямоугольной матрице каждый нулевой элемент заменить средним арифметическим значением ненулевых элементов той строки #4
Ребят а можете кто то код полностью написать а то я в С++ начинающий?
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
27.03.2012, 06:17     В прямоугольной матрице каждый нулевой элемент заменить средним арифметическим значением ненулевых элементов той строки #5
В данном случае не прав ни Nekto, ни Байт.

Цитата Сообщение от hospik Посмотреть сообщение
В прямоугольной матрице каждый нулевой элемент заменить средним арифметическим значением ненулевых элементов той строки
А у обоих получается среднее арифметическое значение всех элементов строки
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
27.03.2012, 07:52     В прямоугольной матрице каждый нулевой элемент заменить средним арифметическим значением ненулевых элементов той строки #6
Цитата Сообщение от valeriikozlov Посмотреть сообщение
В данном случае не прав ни Nekto, ни Байт.


А у обоих получается среднее арифметическое значение всех элементов строки
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
for (int i=0;i<N;i++) {
    float s=0;
    float zero[M]; //номера элементов, которые равны 0
    int count=0;   //количество 0
    for (int j=0;j<M;j++) {
        if (matrix[i][j]==0) {
                             zero[count]=j;
                             count++;
                             }
        else s+=matrix[i][j];
        }
    }
    s/=(M-count);
    for (int j=0;j<count;j++) {
        matrix[i][zero[j]]=s;        
    }
}
(M-count) тогда =)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2012, 09:35     В прямоугольной матрице каждый нулевой элемент заменить средним арифметическим значением ненулевых элементов той строки
Еще ссылки по теме:

Третий положительный элемент массива заменить средним арифметическим положительных элементов - C++
Третий положительный элемент заменить среднеарифметическим значением положительных всех элементов . Сумму элементов массива ,...

Заменить первый элемент массива средним арифметическим максимального и минимального элементов - C++
Здравствуйте, помогите пожалуйста решить задачку 1)Заменить первый элемент массива средним арифметическим максимального и минимального...

Заменить последний элемент массива средним арифметическим максимального и минимального элементов - C++
Здравствуйте, решите пожалуйста задачу. Заменить последний элемент массива средним арифметическим максимального и минимального элементов.

Заменить максимальный элемент массива средним арифметическим элементов, находящихся на нечётных позициях - C++
Что то не сходиться в проге, не могу понять. Вроде всё правильно, но выдаёт ошибку. Что не так? Вот задание В одномерном массиве целых...


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

Или воспользуйтесь поиском по форуму:
Байт
Эксперт C
15686 / 10013 / 1504
Регистрация: 24.12.2010
Сообщений: 18,816
27.03.2012, 09:35     В прямоугольной матрице каждый нулевой элемент заменить средним арифметическим значением ненулевых элементов той строки #7
Цитата Сообщение от valeriikozlov Посмотреть сообщение
А у обоих получается среднее арифметическое значение всех элементов строки
Вы совершенно правы! Как-то пропустил. Те. делить надо на количество ненулевых элементов А ежели все нулевые? Ну тогда или кричать, что задача неразрешима, или положить ответ = 0
Yandex
Объявления
27.03.2012, 09:35     В прямоугольной матрице каждый нулевой элемент заменить средним арифметическим значением ненулевых элементов той строки
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru