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

Посчитать сумму элеметов периметра массива,что не так? - C++

Восстановить пароль Регистрация
 
Zinkutal
1 / 1 / 0
Регистрация: 30.11.2012
Сообщений: 37
16.03.2013, 13:13     Посчитать сумму элеметов периметра массива,что не так? #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
#include <iostream>
#include <stdlib.h>
#include <time.h>
 
#define maximum 100
 
using namespace std;
 
/*Посчитать сумму элементов периметра  двухмерной матрицы*/
int main()
{
    srand(time(NULL));
    int n,m;
    cout <<"Vvvedite razmer massiva (n,m) cherez probel: ";
    cin >> n >> m;
    cout << endl;
    if ((n>0)&&(n<=10)&&(m>0)&&(m<=10))
    {
     int a[10][10];
     for (int i=0; i<n; i++)
        for(int j=0; j<m; j++)
            a[i][j] = rand()%(2*maximum+1)-maximum;
             cout<<"Massiv"<<n<<"x"<<m<<"elementov:"<<endl;
 
     {int s1=0;
     for (int i=0;i<=0;i++)
        for (int j=0;j<n;j++)
            s1=s1+a[i][j];
     int s2=0;
     for (int i=0;i>=n;i++)
       for (int j=0;j<n;j++)
          s2=s2+a[i][j];
     int s3=0;
     for (int i=0;i>0;i++)
        for (int j=0;j<m;j++)
            s3=s3+a[i][j];
     int s4=0;
     for (int i=0;i>=m;i++)
        for (int j=0;j<m;j++)
            s4=s4+a[i][j];
     int s;
     s=s1+s2+s3+s4;
     cout<<"summa="<<s<<endl;}
 
   for (int i=0; i<n; i++)
    {
         for (int j=0; j<m; j++)
            cout << a[i][j] << "\t";
         cout << endl;
     }
        cout << endl;
    int otr=0;
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<m; j++)
            if (a[i][j]< 0)
            otr++;
    }
    cout << "V dannom massive iz " <<n*m<< "chisel"
       << otr<<"elementov men'shih 0";
   }
   else
    cout <<"Vvvedeny nedopustimye znacheniya";
   return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2013, 13:13     Посчитать сумму элеметов периметра массива,что не так?
Посмотрите здесь:

Посчитать сумму элементов массива C++
C++ Удаление элеметов динамического массива
C++ Что не так? (Посчитать кол-во положительных чисел эл. массива)
C++ Посчитать сумму модулей элементов массива, что расположены после первого нулевого элемента
Что не так?. Чтение из файла и нужно посчитать средний балл C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Дмитрий 93
74 / 59 / 5
Регистрация: 03.06.2011
Сообщений: 309
16.03.2013, 16:03     Посчитать сумму элеметов периметра массива,что не так? #2
насколько я понял вы тупо суммируете все элементы массива. по идее нужно суммировать первый столбец, нижнюю строку, последний столбец, верхнюю строку.
Zinkutal
1 / 1 / 0
Регистрация: 30.11.2012
Сообщений: 37
16.03.2013, 16:11  [ТС]     Посчитать сумму элеметов периметра массива,что не так? #3
При чем сначала считаем сумму элементов 1 и последней строки,а потом сумму 1 и последнего столбца,не учитывая 1 и последний элементы в столбцах.
Дмитрий 93
74 / 59 / 5
Регистрация: 03.06.2011
Сообщений: 309
16.03.2013, 16:27     Посчитать сумму элеметов периметра массива,что не так? #4
например
C++
1
2
3
4
5
6
7
8
for(int i=0; i<=n; i++)
for(int j=0; j<=m; j++)
{ while (i==0) s1+=a[i][j] //первая строка например
}
for(int i=0; i<=n; i++)
for(int j=0; j<=m; j++)
{ while (i==n) s2+=a[i][j] //для последней строки например 
}
аналогично для столбцов, а потом например

C++
1
2
 s=s1+s2+s3+s4;
cout<<"Perimeter = "<<s<<endl;
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
16.03.2013, 16:29     Посчитать сумму элеметов периметра массива,что не так? #5
Цитата Сообщение от Дмитрий 93 Посмотреть сообщение
for(int i=0; i<=n; i++)
for(int j=0; j<=m; j++)
{ while (i==0) s1+=a[i][j]
это бесконечный цикл вообще-то.
Дмитрий 93
74 / 59 / 5
Регистрация: 03.06.2011
Сообщений: 309
16.03.2013, 16:42     Посчитать сумму элеметов периметра массива,что не так? #6
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
это бесконечный цикл вообще-то.
да? ну акей

Добавлено через 10 минут
тогда вот так
C++
1
2
3
4
5
6
7
8
9
for(int i=0; i<=n; i++)
for(int j=0; j<=m; j++)
{ if (i==0) s1+=a[i][j];//первая строка
}
cout<<"s1="<<s1<<endl;
for(int i=0; i<=n; i++)
for(int j=0; j<=m; j++)
{ if (i==n) s2+=a[i][j]; //последняя строка 
}
со столбцами так-же
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
16.03.2013, 16:46     Посчитать сумму элеметов периметра массива,что не так? #7
а ещё лучше так!
C++
1
2
3
4
5
sum=0;
for (int i=0; i<n; i++)
  sum+=a[i][0]+a[i][m-1];
for (int i=1; i<m-1; i++)
  sum+=a[0][j]+a[n-1][j];
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2013, 17:02     Посчитать сумму элеметов периметра массива,что не так?
Еще ссылки по теме:

Посчитать сумму индексов массива с++ C++
C++ Посчитать сумму элементов массива

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

Или воспользуйтесь поиском по форуму:
Zinkutal
1 / 1 / 0
Регистрация: 30.11.2012
Сообщений: 37
16.03.2013, 17:02  [ТС]     Посчитать сумму элеметов периметра массива,что не так? #8
Спасибо,очень помогли)
Yandex
Объявления
16.03.2013, 17:02     Посчитать сумму элеметов периметра массива,что не так?
Ответ Создать тему
Опции темы

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