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

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

Восстановить пароль Регистрация
 
dimas23071992
0 / 0 / 0
Регистрация: 29.11.2009
Сообщений: 4
23.12.2010, 09:48     В матрице увеличить элементы каждой строки на вычисленное в ней среднее арифметическое #1
Доброго времени суток. Помогите пожалуйста решить задачи:
1.В матрице увеличить элементы каждой строки на вычисленное в ней среднее арифметическое, если первый элемент матрицы больше последнего. В противном случае матрица остаётся без изменений.
2.Даны три массива. Заменить в каждом элементе с чётными индексами на значение последнего элемента в массиве. Вывести эти массивы на печать.
За 1 задачу кину 100р на яндекс деньги. Мой ICQ:629668200
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2010, 09:48     В матрице увеличить элементы каждой строки на вычисленное в ней среднее арифметическое
Посмотрите здесь:

Найти среднее арифметическое элементов для каждой строки заданного двухмерного массива C++
C++ В матрице А[N, N], сформированной случайным образом, обнулить все элементы, превосходящие среднее арифметическое элементов матрицы
C++ Найти среднее арифметическое элементов каждой строки матрицы
В прямоугольной матрице заменить каждый нулевой элемент на среднее арифметическое строки C++
C++ Вычислить среднее арифметическое четных элементов каждой отдельной строки матрицы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kenwood2010
48 / 59 / 7
Регистрация: 26.11.2010
Сообщений: 192
23.12.2010, 10:34     В матрице увеличить элементы каждой строки на вычисленное в ней среднее арифметическое #2
Цитата Сообщение от dimas23071992 Посмотреть сообщение
Доброго времени суток. Помогите пожалуйста решить задачи:
1.В матрице увеличить элементы каждой строки на вычисленное в ней среднее арифметическое, если первый элемент матрицы больше последнего. В противном случае матрица остаётся без изменений.
в работе!
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
23.12.2010, 10:51     В матрице увеличить элементы каждой строки на вычисленное в ней среднее арифметическое #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
2.
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
#include <iostream>
#include <cstdlib>
using namespace std;
 
const int SIZE=100;
 
int input(int[], int);
void print(int mas1[], int size);
 
void sort (int mas[], int p)
{
    int i, j;
    for (i=0; i<p; i+=2)
        mas[i]=mas[p-1];
}
 
int main() 
{
    setlocale (LC_ALL, "Russian");
    int a[SIZE], b[SIZE], c[SIZE];
    int n, n2, n3;
 
    n=input (a, SIZE);  
    n2=input (b, SIZE);
    n3=input (c, SIZE);
    cout<<endl;
 
    cout<<"1j massiv: \n";
    print (a, n);
    cout<<"2j massiv: \n";
    print(b, n2);
    cout<<"3j massiv: \n";
    print(c, n3);
    sort (a, n);
    sort (b, n2);
    sort (c, n3);
    cout<<"Rezultaty: \n";
    cout<<"1j massiv: \n";
    print (a, n);
    cout<<"2j massiv: \n";
    print(b, n2);
    cout<<"3j massiv: \n";
    print(c, n3);
}
 
int input(int mas[], int size) 
{   
    int n=0;
    do {
        cout<<"Vvedite kolichestvo elementov: ";
        cin>>n;
        } 
    while(n<1||n>size);
    cout<<"Vvedite "<<n<<" chisel: "<<endl;
    int k=0;
    while((k<n)&&(cin>>mas[k]))
        k++;
    return k;
}
void print(int mas1[], int size)
{
    for (int i=0; i<size; i++)
        cout<<mas1[i]<<" ";
    cout<<endl;
}
Kenwood2010
48 / 59 / 7
Регистрация: 26.11.2010
Сообщений: 192
23.12.2010, 12:07     В матрице увеличить элементы каждой строки на вычисленное в ней среднее арифметическое #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Задача №1
Реализовано на C++ Builder 6.0, но адаптирована еще под Turbo C++ 3.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
#include <iostream.h>
#include <conio.h>
 
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma argsused
//---------------------------------------------------------------------------
 
int main()
{
int **matr;
int cows = 0 /*ñòðîêГ**/, rows = 0 /*ñòîëáåö*/;
int per = 0, pos = 0, sum = 0;
int i = 0, j = 0, k = 0;
int flag = 0;
 
 
cout<<"Vvedite razmer matrici (stroka, stolbec): ";
cin >> cows;   /*ñòðîêГ**/
cin >> rows;   /*ñòîëáåö*/
 
//ñîçäГ*Г*ГЁГҐ Г¬Г*òðèöû
matr = new int *[cows];
for(i = 0; i < cows; i++)
 {
   matr[i] = new int [rows];
 }
 
//Г‡Г*ïîëГ*ГҐГ*ГЁГҐ Г¬Г*òðèöû ГЁ âûîä ГҐГҐ Г*Г* ГЅГЄГ°Г*Г*
cout<<"Matr imeet vid: "<<endl;
randomize();
for(i = 0; i < cows; i++)
 {
  for(j = 0; j < rows; j++)
   {
    matr[i][j] = random(25);
    cout<<matr[i][j]<<" ";
   }
   cout<<endl;
 }
//îïðåäåëÿåì áîëüøå ïðåâûé ýëåìåГ*ГІ èëè Г*ГҐГІ
per = matr[0][0];
pos = matr[cows-1][rows-1];
if (per > pos)
 {
   for(i = 0; i< cows; i++)
    {
     for(j = 0; j< rows; j++)
      {
       sum = sum + matr[i][j];
      }
       sum = sum / rows;
       for(k = 0; k < rows; k++)
        {
 
         matr[i][k] = matr[i][k] + sum;
        }
       sum = 0;
      }
  }
 else
 {
  cout<<"Otvet: "<<endl<<"Matrica ne izmenna, tak kak: "<<per<<" menshe "<<pos<<" !";
  getch();
  //ГіГ¤Г*ëåГ*ГЁГҐ Г¬Г*òðèöû
  for(int i = 0; i < cows; i++)
  {
   delete[] matr[i];
  }
   delete[] matr;
   flag = 1;
 }
 
if(flag==0)
{
cout<<endl<<"Otvet: "<<endl;
cout<<"Matr imeet vid: "<<endl;
for(i = 0; i < cows; i++)
 {
  for(j = 0; j < rows; j++)
   {
    cout<<matr[i][j]<<" ";
   }
   cout<<endl;
 }
 
//ГіГ¤Г*ëåГ*ГЁГҐ Г¬Г*òðèöû
for(int i = 0; i < cows; i++)
{
delete[] matr[i];
}
delete[] matr;
getch();
}
return 0;
}
если необходимо использовать в Turbo C++, то это необходимо удалить:
C++
1
2
3
4
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma argsused
//---------------------------------------------------------------------------
Добавлено через 12 минут
Задача №1
Реализовано на C++ Builder 6.0, но адаптирована еще под Turbo C++ 3.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
#include <iostream.h>
#include <conio.h>
 
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma argsused
//---------------------------------------------------------------------------
 
int main()
{
int **matr; 
int cows = 0 /*ñòðîêГ**/, rows = 0 /*ñòîëáåö*/;
int per = 0, pos = 0, sum = 0;
int i = 0, j = 0, k = 0; //используем в циклах
int flag = 0; 
 
cout<<"Vvedite razmer matrici (stroka, stolbec): ";
cin >> cows;   /*ñòðîêГ**/
cin >> rows;   /*ñòîëáåö*/
 
//Создание динамической матрицы по заданным размерам
matr = new int *[cows];
for(i = 0; i < cows; i++)
 {
   matr[i] = new int [rows];
 }
 
//Заполнение матрицы случайными положительными числами и вывод заполненой матрицы на экран
cout<<"Matr imeet vid: "<<endl;
randomize();
for(i = 0; i < cows; i++)
 {
  for(j = 0; j < rows; j++)
   {
    matr[i][j] = random(25);
    cout<<matr[i][j]<<" ";
   }
   cout<<endl;
 }
//берем первый и последний элемент матрицы
per = matr[0][0];
pos = matr[cows-1][rows-1];
if (per > pos) //сравниваем их
 { //если первый больше
   for(i = 0; i< cows; i++)
    {
     for(j = 0; j< rows; j++)
      {
       sum = sum + matr[i][j]; //собираем в sum сумму каждой строки
      }
       sum = sum / rows; //делим сумму на кол-во эл-тов в строке
       for(k = 0; k < rows; k++)
        {
 
         matr[i][k] = matr[i][k] + sum; //добавляем в каждому эл-ту строки средар.знач строки
        }
       sum = 0; //зануляем, для получения значения следующей строки
      }
  }
 else //если не равен первый и последний
 {
  cout<<"Otvet: "<<endl<<"Matrica ne izmenna, tak kak: "<<per<<" menshe "<<pos<<" !";
  getch();
  //удаление динамической матрицы  - высвобождение памяти занятой под матрицу
  for(int i = 0; i < cows; i++)
  {
   delete[] matr[i];
  }
   delete[] matr;
   flag = 1; //делаем 1, чтоб не повторить повторного удаления матрицы, прграмма просто вылетит с ошибкой
 }
 
if(flag==0)
{
cout<<endl<<"Otvet: "<<endl;
cout<<"Matr imeet vid: "<<endl;
for(i = 0; i < cows; i++)   //формируем и выводим матрицу после произведенных изменений
 {
  for(j = 0; j < rows; j++)
   {
    cout<<matr[i][j]<<" ";
   }
   cout<<endl;
 }
 
//удаление динамической матрицы  - высвобождение памяти занятой под матрицу
for(int i = 0; i < cows; i++)
{
delete[] matr[i];
}
delete[] matr;
getch();
}
return 0;
}
если необходимо использовать в Turbo C++, то это необходимо удалить:
C++
1
2
3
4
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma argsused
//---------------------------------------------------------------------------
Yandex
Объявления
23.12.2010, 12:07     В матрице увеличить элементы каждой строки на вычисленное в ней среднее арифметическое
Ответ Создать тему
Опции темы

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