Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
gvozdx
0 / 0 / 0
Регистрация: 05.11.2012
Сообщений: 8
1

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

06.11.2012, 03:40. Просмотров 635. Ответов 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2012, 03:40
Ответы с готовыми решениями:

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

Найти разность между максимальным элементом главной диагонали и минимальным элементом побочной
Вводится матрица размером NxN. Найти разность между максимальным элементом,...

Разделить столбец матрицы с максимальным средним арифметическим на соответствующие элементы первого столбца
Если в первом столбце прямоугольной матрицы все элементы по модулю больше...

В массиве из 10 целых чисел вычислить разность между наибольшим элементом и средним арифметическим
В массиве из 10 целых чисел вычислить разность между наибольшим элементом и...

Поменять местами столбец, с минимальным элементом, со столбцом, с максимальным элементом
Задана матрица размером N*M. Поменять местами столбец, содержащий элемент с...

3
Kuzia domovenok
2327 / 2074 / 482
Регистрация: 25.03.2012
Сообщений: 7,397
Записей в блоге: 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;
  }
}
1
gvozdx
0 / 0 / 0
Регистрация: 05.11.2012
Сообщений: 8
06.11.2012, 04:56  [ТС] 3
спасибо , что то я этот момент упустил ...
0
Kuzia domovenok
2327 / 2074 / 482
Регистрация: 25.03.2012
Сообщений: 7,397
Записей в блоге: 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)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2012, 05:30

Найти столбец с самым большим элементом в заданной матрице
Прошу помочь по решению задачи для курсовой. Задача очень простая! Дана...

В заданной матрице заменить строки с максимальным элементом на строку с минимальным элементом
Помогите девочке очень срочно нужна помощь Замена в матрице строки с...

Найти разность между максимальным и минимальным значениями массива
Помогите пожалуйста реализовать данные задачи 1 Дан массив A из 10...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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