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

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

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

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

06.11.2012, 03:40. Просмотров 577. Ответов 3
Метки нет (Все метки)

В матрице имеется столбец в котором разность между максимальным элементом и среднем арифметическим больше первого элемента наити этот столбец и заметить этот элемент на 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
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
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <cmath>
#include <math.h>
#include <ctype.h>
#include <conio.h> 
 
using namespace std;
 
 
int main()
{    
     setlocale(LC_ALL,"Russian");
     int N,imax=0,imin=0,jmax=0,jmin=0,max,min,sum,sr;
     int **arr;
     cout<<"Введите N: ";
     cin>>N;
     arr = new int*[N];
     cout<<"Введите елементы матрицы: "<<endl;
     for(int i=0; i<N; i++)
     {
          arr[i] = new int[N];
          for(int j=0; j<N; j++)
           {
             cout<<"mat["<<i+1<<"]["<<j+1<<"]= ";
             cin>>arr[i][j];
            }
     }
     max=arr[0][0];
     min=arr[0][0];
     cout<<endl<<"Матрица:"<<endl;
     for(int i=0; i<N; i++)
     {
          for(int j=0; j<N; j++)
           {
             cout<<arr[i][j]<<"  ";
             if(arr[i][j]>max)
             {
                 max=arr[i][j];
                 imax=i;
                 jmax=j;
             }
             if(arr[i][j]<min)
             {
                 min=arr[i][j];
                 imin=i;
                 jmin=j;
             }
            }
          cout<<endl;
     }
    for (int i=0; i<N; i+=1)
    {
        int sum = 0;
        for (int j=0; j<N; j++)
            sum += arr[j][i];
        double sr= double(sum) / N;
    cout<<"Среднее арифметическое "<<sr<<endl;}
     cout<<"Максимальный елемент ["<<imax+1<<"]["<<jmax+1<<"]= "<<max<<endl;
     cout<<"Минимальный елемент  ["<<imin+1<<"]["<<jmin+1<<"]= "<<min<<endl;
    
     for(int i=0; i<N; i++)
         delete arr[i];
           delete [] arr;
     system("pause");
   return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2012, 03:40     В матрице найти столбец, в котором разность между максимальным элементом и среднем арифметическим больше первого элемента
Посмотрите здесь:

C++ Найти разность между максимальным и минимальным значениями массива
C++ Найти количество элементов массива, содержащихся между первым и последним максимальным элементом
Найти столбец с максимальным произведением элемента C++
C++ В упорядоченном по убыванию массиве найти разность между наименьшим значением и последним элементом, большим Р
C++ В матрице имеется столбец в котором разность между максимальным элементом и среднем арифметическим больше первого элемента найти этот столбец и замети
C++ В массиве из 10 целых чисел вычислить разность между наибольшим элементом и средним арифметическим
Найти разницу между максимальным и минимальным элементом массива C++
Найти столбец с самым большим элементом в заданной матрице C++
C++ В заданном массиве найти элемент, расположенный между первым нулевым и максимальным элементом
C++ Поменять местами столбец, с минимальным элементом, со столбцом, с максимальным элементом
В заданной матрице заменить строки с максимальным элементом на строку с минимальным элементом C++
Найти разность между максимальным элементом главной диагонали и минимальным элементом побочной C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,917
Записей в блоге: 1
06.11.2012, 04:54     В матрице найти столбец, в котором разность между максимальным элементом и среднем арифметическим больше первого элемента #2
тебе нужно не для всей матрицы максимум и среднее считать, а для каждого столбца в отдельности.B цикле находишь минимальную разность
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
for(int i=0; i<N; i++)
{
  jmax=0; sum=0;
  for(int j=1; j<N; j++)
  {
    if(arr[i][j]>arr[i][jmax])
      jmax=j
    sum+=a[i][j];
   }
  if (a[i][jmax]*N-sum>a[i][0]){
    cout<<"искомый элемент "<<a[i][0]<<" в столбце"<<i<<endl;
    break;
  }
}
gvozdx
0 / 0 / 0
Регистрация: 05.11.2012
Сообщений: 8
06.11.2012, 04:56  [ТС]     В матрице найти столбец, в котором разность между максимальным элементом и среднем арифметическим больше первого элемента #3
спасибо , что то я этот момент упустил ...
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,917
Записей в блоге: 1
06.11.2012, 05:30     В матрице найти столбец, в котором разность между максимальным элементом и среднем арифметическим больше первого элемента #4
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
if (a[i][jmax]*N-sum>a[i][0]){
if (a[i][jmax]*N-sum>a[i][0]*N)
Yandex
Объявления
06.11.2012, 05:30     В матрице найти столбец, в котором разность между максимальным элементом и среднем арифметическим больше первого элемента
Ответ Создать тему
Опции темы

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