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

Вывести среднее арифметическое для каждой строки в массиве. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Дурацкое окргуление http://www.cyberforum.ru/cpp-beginners/thread549952.html
Почему возникает эта проблема? int main() { double x=0.3; int y=600; int z; double d; d= x*y; //180 z= d;//180
C++ Метод Гаусса Всем привет. Ребят, что скажите по поводу такой реализации метода Гаусса: #include <stdio.h> #include <stdlib.h> #include <math.h> float A; float B ; int n, m; http://www.cyberforum.ru/cpp-beginners/thread549943.html
Определить, является ли заданная матрица А(n,n) ортогональной C++
Квадратная матрица А называется ортогональной,если А^T=А^-1. Определить, является ли заданная матрица А(n,n) ортогональной. Помогите пожалуйста написать на С++ написать программу на элементарном уровне 1 курса. Буду очень благодарна.
Нужна блок схема к задаче - посчитать сумму элементов выше главной диагонали матрицы 5х5 C++
нужно составить блок схему к задаче: посчитать сумму элементов выше главной диагонали матрицы 5х5. Заранее благодарен!
C++ обработка двумерных динамических массивов http://www.cyberforum.ru/cpp-beginners/thread549912.html
Лабораторная работа №11 Тема: Обработка динамических массивов Цель: Овладение практическими навыками разработки и программирования вычислительного процесса по обработке двумерных динамических массивов. |Задание|Примечание 1|В матрицу С(3х4) вставить первую строку и в полученной квадратной матрице произведение каждого столбца, результат вывести в виде одномерного массива| 2|В матрицы G(4х5)...
C++ обработка одномерных динамических массивов Лабораторная работа № 10 Тема: Обработка одномерных динамических массивов Цели: Овладение практическими навыками разработки и программирования вычислительного процесса по обработке динамических массивов 1. Удалить из массива элемент, стоящий перед третьим элементом. 2. Вставить число 58 после девятого элемента массива. 3. Удалить все элементы кратные 7 или 13 подробнее

Показать сообщение отдельно
SANE49
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 5
17.04.2012, 13:48     Вывести среднее арифметическое для каждой строки в массиве.
Здравствуйте у меня проблема. Нужно вывести среднее арифметическое для каждой строки. Размерности двумерного массива спросить у пользователя, а память под двумерный массив захватить динамически. Причем размер двумерного массива может не совпадать с размером одномерного - в данном случае нужно продумать поведение программы. Программу написал, но выдает ошибки, т.к. в динамических массивах почти ничего не знаю.
Вот код программы:
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
#include <iostream>
#include <windows.h>
using namespace std;
void main()
{
      setlocale(LC_ALL,"Russian_Russia.1251");
      int m1[100]={ 
       16,  78,  99,   6, -29,  19, -52,  65, -88,  51,
      -79, -22,  32, -25, -62, -69,  -2, -59, -75,  89,
      -87,  95, -22,  85, -49, -75,  76,  73, -59, -52,
       30,  49, -28, -48,   0,  57,  -6, -85,   0, -18,
      -97, -21, -95,  64,  22,  -2,  69, -84,  -1, -71,
      -25,  47,  72,  43,  15, -44,  44,  61,   4,  74,
       88, -61,   0, -64, -83,  97,   0,  90,  15,   8,
      -54,  19,  73,  35, -67, -87,  85, -99, -70,  10,
       98,  58, -10, -29,  95,  62,  77,  89,  36, -32,
       78,  60, -79, -18,  30, -13, -34, -92,   1, -38};
      int i,j;
      int *pm=new int[10];
      int a=100,b=100,k=0;
      while(a*b>100)
      {
          cout << "Введите количество столбцов:";
          cin >> b;
          cout << "Введите количество строк:";
          cin >> a;
          if((a*b)>100) 
              cout <<"Нельзя создать массив больше 100 элементов."<< endl;
      }
      int *pm1=m1;
      int **pm2;
      pm2 = new int*[a];
      for (i=0; i<a; i++)
      {
           pm2[i]= new int [b];
      }
           for ( i=0; i<a; i++)
           {
                for ( j=0; j<b; j++)
                {
                     pm2[i][j]= m1[k];
                     k++;
                }
                if(k>99)break;
           }
      cout <<"Массив:"<< endl;
      for(i=0;i<a;i++)
      {
          for(j=0;j<b;j++) 
              cout << pm2[i][j] << " ";
          cout<<endl;
      }
          double summ=0.00;
          for(int w=0;w<a;w++,summ=0)
          {
              for(int u=0;u<b;u++,pm2++)
              {
                  summ=summ+(**pm2);
              }
      cout << "среднее арифмитическое в " << w+1 << " строке = " << summ << endl;  }
}
Добавлено через 21 час 39 минут
Все,сделал сам.

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
#include<iostream>
using namespace std;
 
int** CreateMas2(int x, int y)
{
    
    int **mas2=new int*[x];
    for(int i=0;i<x;++i)
    {
        mas2[i]=new int[y];
    }
    return mas2;
}
 
int main()
{
    setlocale(LC_ALL,"Russian_Russia.1251");
    int mas[] = {  
       16,  78,  99,   6, -29,  19, -52,  65, -88,  51,
      -79, -22,  32, -25, -62, -69,  -2, -59, -75,  89,
      -87,  95, -22,  85, -49, -75,  76,  73, -59, -52,
       30,  49, -28, -48,   0,  57,  -6, -85,   0, -18,
      -97, -21, -95,  64,  22,  -2,  69, -84,  -1, -71,
      -25,  47,  72,  43,  15, -44,  44,  61,   4,  74,
       88, -61,   0, -64, -83,  97,   0,  90,  15,   8,
      -54,  19,  73,  35, -67, -87,  85, -99, -70,  10,
       98,  58, -10, -29,  95,  62,  77,  89,  36, -32,
       78,  60, -79, -18,  30, -13, -34, -92,   1, -38};
    int x,y;
    int *pmas1=mas;
    int **pmas2;
    cout<<"Задайте размер массива x на y: "<<endl;
    cin>>x>>y;
    int sizemas1=sizeof(mas)/sizeof(mas[0]);
    int sizemas2=x*y;
    pmas2=CreateMas2(x,y);
    
    {   
        int count=0;
        if(sizemas2<=sizemas1)
        {
 
            for(int i=0;i<x;i++)
            {
                for(int e=0;e<y;e++)
                {
                    pmas2[i][e]=*pmas1;
                    if(count<sizemas2)
                        ++count;
                    else 
                    { 
                        count=0;
                        goto ex1;
                    }
                    ++pmas1;
                }
            }
        }
        else
        for(int i=0;i<x;i++)
        {
            for(int e=0;e<y;e++)
            {
                
                if(count<=sizemas1)
                {
                    pmas2[i][e]=*pmas1;
                    ++count;
                }
                if(count>sizemas1&&count<sizemas2)
                {
                    pmas2[i][e]=0;
                    ++count;
                }
                else goto ex1;
                ++pmas1;
            }
        }
        ex1:
 
        for(int i=0;i<x;++i)
        {
            double summ=NULL;
            for(int u=0;u<y;++u)
            {
                summ=summ+pmas2[i][u];
                summ/y;
            }
            cout<<"Среднее арифмитическое в "<<i+1<<" строке : "<<summ<<endl;
        }
        return 0;
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 08:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru