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

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

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

Двухмерный массив: вычисление сумм элементов - C++

03.02.2013, 16:45. Просмотров 394. Ответов 15
Метки нет (Все метки)

Здравствуйте, дорогие форумчане.
Я тут озадачен и не могу понять... Правильно ли у меня решена задача или нет?
Вот, собственно, задание:
Дана целочисленная квадратная матрица A порядка n. Найти номера строк, все элементы которых чётны.
Если что, то скрин прикрепил с заданием прикрепил.
Вот мои наброски этой программы:
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
int main()
{
    float sum=0;
    srand(time(0));
    float array[10][10];
    for(int i=0;i<10;i++)
    {
        for(int j=0;j<10;j++)
        {
            array[i][j]=rand()%10-3;
                cout<<setw(3)<<array[i][j];
        }
        cout<<endl;
    }   
    cout<<endl;
    cout<<endl;
    for(int i=0;i<10;i++)
    {
        for(int j=0;j<10;j++)
        {
            if((i==j) & (array[i][j]<0))
            {
                cout<<"Summa v stroke "<<i<<"ravna:";
                for( j=0;j<10;j++)
                {
                    sum+=array[i];
                }
                cout<<sum<<endl; sum=array[i];
            }
        }
    }
    getch();
    return 0;
}
Но по-моему, у меня что-то не так...
Можете подсказать, что именно?
Или исправить программу...Пожалуйста. С меня много +.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.02.2013, 16:45     Двухмерный массив: вычисление сумм элементов
Посмотрите здесь:

Двухмерный массив: вычисление сумм элементов - C++
Здравствуйте, дорогие форумчане!;) -------------------------------------- Помогите, пожалуйста, решить задание. ...

Двухмерные массивы: Вычисление сумм элементов - C++
Здравствуйте, дорогие форумчане. ----------------------------------- Помогите, пожалуйста, решить задачу. Даны действительные числа...

Одномерные массивы: вычисление сумм элементов - C++
Здравствуйте, дорогие форумчане. Мне снова нужна ваша помощь. Так как в задании есть примеры, которые в ручную и быстро не могу...

Одномерные массивы: вычисление сумм элементов - C++
Еще раз здравствуйте, дорогие форумчане. Помогите, пожалуйста, с решением еще одной задачи... Тут я не могу додуматься как ввести...

Вычисление сумм элементов. Операторы и функции - C++
Здравствуйте, дорогие форумчане. Мне нужна ваша помощь, а конкретно вот по этому заданию: Даны действительные числа a,b....

Одномерные массивы: вычисление сумм элементов - C++
Еще раз здравствуйте, дорогие форумчане. Мне еще раз нужна ваша помощь по задачам. Если сможете, то помогите, пожалуйста. Собственно...

Одномерные массивы: вычисление сумм элементов - C++
Еще раз здравствуйте, дорогие форумчане. Снова нужна ваша помощь. Вот собственно сама задача: Даны натуральное число n,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sanyachel9binsk
1 / 1 / 0
Регистрация: 27.10.2012
Сообщений: 209
03.02.2013, 16:47  [ТС]     Двухмерный массив: вычисление сумм элементов #2
Вот скрин задания, если понадобится.
Миниатюры
Двухмерный массив: вычисление сумм элементов  
sanyachel9binsk
1 / 1 / 0
Регистрация: 27.10.2012
Сообщений: 209
03.02.2013, 17:08  [ТС]     Двухмерный массив: вычисление сумм элементов #3
АП.
Пёс
228 / 76 / 4
Регистрация: 03.02.2013
Сообщений: 311
03.02.2013, 17:09     Двухмерный массив: вычисление сумм элементов #4
Цитата Сообщение от sanyachel9binsk Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
if((i==j) & (array[i][j]<0))
            {
                cout<<"Summa v stroke "<<i<<"ravna:";
                for( j=0;j<10;j++)
                {
                    sum+=array[i];
                }
                cout<<sum<<endl; sum=array[i];
            }
Уважаемый, а зачем нам сумма в строке? И что это это за бредовое условие?
sanyachel9binsk
1 / 1 / 0
Регистрация: 27.10.2012
Сообщений: 209
03.02.2013, 17:13  [ТС]     Двухмерный массив: вычисление сумм элементов #5
Цитата Сообщение от Пёс Посмотреть сообщение
Уважаемый, а зачем нам сумма в строке? И что это это за бредовое условие?
Ну дак сумма же ищется всех чётных. Точнее номера всех четных строк.

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
if((i==j) & (array[i][j]<0))
            {
                cout<<"Summa chetnix strok "<<i<<"ravna:";
                for( j=0;j<10;j++)
                {
                    sum+=array[i];
                }
                cout<<sum<<endl; sum=array[i];
            }
Вот так тогда.
Пёс
228 / 76 / 4
Регистрация: 03.02.2013
Сообщений: 311
03.02.2013, 17:17     Двухмерный массив: вычисление сумм элементов #6
Цитата Сообщение от sanyachel9binsk Посмотреть сообщение
Вот скрин задания, если понадобится.
У вас в задании написано что надо найти НОМЕРА СТРОК, в которых все элементы ЧЁТНЫЕ

Добавлено через 3 минуты
А номера строк в которых все элементы чётные - это такие i в выражении array[i][j], при которых любые j в диапазоне от 0 до 9 (это в вашем случае) при делении на 2 дают остаток 0
sanyachel9binsk
1 / 1 / 0
Регистрация: 27.10.2012
Сообщений: 209
03.02.2013, 17:19  [ТС]     Двухмерный массив: вычисление сумм элементов #7
Цитата Сообщение от Пёс Посмотреть сообщение
У вас в задании написано что надо найти НОМЕРА СТРОК, в которых все элементы ЧЁТНЫЕ

Добавлено через 3 минуты
А номера строк в которых все элементы чётные - это такие i в выражении array[i][j], при которых любые j в диапазоне от 0 до 9 (это в вашем случае) при делении на 2 дают остаток 0
А можете код показать?
Пёс
228 / 76 / 4
Регистрация: 03.02.2013
Сообщений: 311
03.02.2013, 17:23     Двухмерный массив: вычисление сумм элементов #8
Но это код не элегантый и не понятный сразу. Сейчас я вам напишу хороший пример.
DEA7H
.NET ONLY
62 / 62 / 1
Регистрация: 05.10.2011
Сообщений: 495
03.02.2013, 17:24     Двухмерный массив: вычисление сумм элементов #9
Вот полностью готовая задача! Можно даже рандом юзать!
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
// CF1.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
void goRandom (int n, int x[100][100])
{
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            x[i][j]=rand()%100-50;
        }
    }
}
 
void goHand(int n, int x[100][100])
{
    int m;
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            cin >> m;
            x[i][j]=m;
        }
    }
}
 
void printMatrix(int n, int x[100][100])
{
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            cout << "[" << x[i][j]<< "]";
        }
        cout << "\n";
    }
}
 
int search (int n, int x[100][100])
{
    int y[100], s=0;
 
    bool result = false;
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            if (x[i][j]%2==0)
            {
                result = true;
            }
            else
            {
                result = false;
            }
        }
        if (result)
        {
            y[s]=i;
        }
    }
    return y[100];
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"Rus");
    int x[100][100], y[100];
    int n, sw;
    cout << "Ведите размер матрицы: \n";
    cin >> n;
    cout << "Как заполнить матрицу?\n1 - Рандом\n2 - С клавиатуры\n";
    cin >> sw;
    
    switch (sw)
    {
        case 1:
        {
            goRandom(n, x);
            break;
        }
        case 2:
        {
            goHand(n, x);
            break;
        }
    }
    cout << "Ваша матрица\n";
    printMatrix(n, x);
 
    int s=0;
 
    bool result = false;
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            if (x[i][j]%2==0)
            {
                result = true;
            }
            else
            {
                result = false;
                break;
            }
        }
        if (result)
        {
            y[s]=i+1;
            s++;
        }
    }
 
    if (s==0)
    {
        cout << "Не найдено!";
    }
    else
    {
        cout << "Найдены строки с номерами: \n";
        for (int i=0; i<s; i++)
        {
 
            cout << y[i]<<"\n";
        }
    }
    system ("pause");
    return 0;
}
+ exe-шник:
CF1.rar

Пользуйтесь...
sanyachel9binsk
1 / 1 / 0
Регистрация: 27.10.2012
Сообщений: 209
03.02.2013, 17:28  [ТС]     Двухмерный массив: вычисление сумм элементов #10
Цитата Сообщение от DEA7H Посмотреть сообщение
Вот полностью готовая задача! Можно даже рандом юзать!
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
// CF1.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
void goRandom (int n, int x[100][100])
{
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            x[i][j]=rand()%100-50;
        }
    }
}
 
void goHand(int n, int x[100][100])
{
    int m;
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            cin >> m;
            x[i][j]=m;
        }
    }
}
 
void printMatrix(int n, int x[100][100])
{
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            cout << "[" << x[i][j]<< "]";
        }
        cout << "\n";
    }
}
 
int search (int n, int x[100][100])
{
    int y[100], s=0;
 
    bool result = false;
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            if (x[i][j]%2==0)
            {
                result = true;
            }
            else
            {
                result = false;
            }
        }
        if (result)
        {
            y[s]=i;
        }
    }
    return y[100];
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"Rus");
    int x[100][100], y[100];
    int n, sw;
    cout << "Ведите размер матрицы: \n";
    cin >> n;
    cout << "Как заполнить матрицу?\n1 - Рандом\n2 - С клавиатуры\n";
    cin >> sw;
    
    switch (sw)
    {
        case 1:
        {
            goRandom(n, x);
            break;
        }
        case 2:
        {
            goHand(n, x);
            break;
        }
    }
    cout << "Ваша матрица\n";
    printMatrix(n, x);
 
    int s=0;
 
    bool result = false;
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            if (x[i][j]%2==0)
            {
                result = true;
            }
            else
            {
                result = false;
                break;
            }
        }
        if (result)
        {
            y[s]=i+1;
            s++;
        }
    }
 
    if (s==0)
    {
        cout << "Не найдено!";
    }
    else
    {
        cout << "Найдены строки с номерами: \n";
        for (int i=0; i<s; i++)
        {
 
            cout << y[i]<<"\n";
        }
    }
    system ("pause");
    return 0;
}
+ exe-шник:
Вложение 231518

Пользуйтесь...
Спасибо огромное!)
DEA7H
.NET ONLY
62 / 62 / 1
Регистрация: 05.10.2011
Сообщений: 495
03.02.2013, 17:30     Двухмерный массив: вычисление сумм элементов #11
А забыл удалить.
Вот это лишнее:
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
int search (int n, int x[100][100])
{
    int y[100], s=0;
 
    bool result = false;
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            if (x[i][j]%2==0)
            {
                result = true;
            }
            else
            {
                result = false;
            }
        }
        if (result)
        {
            y[s]=i;
        }
    }
    return y[100];
}
Просто сотрите эту функцию search.

Сам код который ищет строки вот:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
bool result = false;
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            if (x[i][j]%2==0)
            {
                result = true;
            }
            else
            {
                result = false;
                break;
            }
        }
        if (result)
        {
            y[s]=i+1;
            s++;
        }
    }
Он внутри main.
Пёс
228 / 76 / 4
Регистрация: 03.02.2013
Сообщений: 311
03.02.2013, 17:34     Двухмерный массив: вычисление сумм элементов #12
Вам лишь остаётся применить этот код под себя

C++
1
2
3
4
5
6
7
8
9
10
11
12
    int arr[10][10];
 
    for(int i = 0; i<10; i++) //идем по строкам
    {
        bool flag = true;     //предположим что в i-ой строке все элементы четные.
        
        for(int j = 0; j<10; j++)  // идем по каждому элементу.
            if(arr[i][j]%2 != 0)  //если элемент в строке j оказался нечётным, то значит наше предположене неверно.
                flag = false;
        if(flag)                // если предположение оказалось верно
            cout << "Строка №" << i <<" содержит только чётные элементы" << endl;
    }
sanyachel9binsk
1 / 1 / 0
Регистрация: 27.10.2012
Сообщений: 209
03.02.2013, 17:34  [ТС]     Двухмерный массив: вычисление сумм элементов #13
Получится вот так?
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
void goRandom (int n, int x[100][100])
{
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            x[i][j]=rand()%100-50;
        }
    }
}
 
void goHand(int n, int x[100][100])
{
    int m;
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            cin >> m;
            x[i][j]=m;
        }
    }
}
 
void printMatrix(int n, int x[100][100])
{
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            cout << "[" << x[i][j]<< "]";
        }
        cout << "\n";
    }
}
 
int (int n, int x[100][100])
{
    int y[100], s=0;
 
    bool result = false;
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            if (x[i][j]%2==0)
            {
                result = true;
            }
            else
            {
                result = false;
            }
        }
        if (result)
        {
            y[s]=i;
        }
    }
    return y[100];
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"Rus");
    int x[100][100], y[100];
    int n, sw;
    cout << "Ведите размер матрицы: \n";
    cin >> n;
    cout << "Как заполнить матрицу?\n1 - Рандом\n2 - С клавиатуры\n";
    cin >> sw;
    
    switch (sw)
    {
        case 1:
        {
            goRandom(n, x);
            break;
        }
        case 2:
        {
            goHand(n, x);
            break;
        }
    }
    cout << "Ваша матрица\n";
    printMatrix(n, x);
 
    int s=0;
 
    bool result = false;
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            if (x[i][j]%2==0)
            {
                result = true;
            }
            else
            {
                result = false;
                break;
            }
        }
        if (result)
        {
            y[s]=i+1;
            s++;
        }
    }
 
    if (s==0)
    {
        cout << "Не найдено!";
    }
    else
    {
        cout << "Найдены строки с номерами: \n";
        for (int i=0; i<s; i++)
        {
 
            cout << y[i]<<"\n";
        }
    }
    system ("pause");
    return 0;
}
{
getch();
}
DEA7H
.NET ONLY
62 / 62 / 1
Регистрация: 05.10.2011
Сообщений: 495
03.02.2013, 17:35     Двухмерный массив: вычисление сумм элементов #14
Вот так:
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
// CF1.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
void goRandom (int n, int x[100][100])
{
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            x[i][j]=rand()%100-50;
        }
    }
}
 
void goHand(int n, int x[100][100])
{
    int m;
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            cin >> m;
            x[i][j]=m;
        }
    }
}
 
void printMatrix(int n, int x[100][100])
{
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            cout << "[" << x[i][j]<< "]";
        }
        cout << "\n";
    }
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"Rus");
    int x[100][100], y[100];
    int n, sw;
    cout << "Ведите размер матрицы: \n";
    cin >> n;
    cout << "Как заполнить матрицу?\n1 - Рандом\n2 - С клавиатуры\n";
    cin >> sw;
    
    switch (sw)
    {
        case 1:
        {
            goRandom(n, x);
            break;
        }
        case 2:
        {
            goHand(n, x);
            break;
        }
    }
    cout << "Ваша матрица\n";
    printMatrix(n, x);
 
    int s=0;
 
    bool result = false;
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            if (x[i][j]%2==0)
            {
                result = true;
            }
            else
            {
                result = false;
                break;
            }
        }
        if (result)
        {
            y[s]=i+1;
            s++;
        }
    }
 
    if (s==0)
    {
        cout << "Не найдено!";
    }
    else
    {
        cout << "Найдены строки с номерами: \n";
        for (int i=0; i<s; i++)
        {
 
            cout << y[i]<<"\n";
        }
    }
    system ("pause");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2013, 17:36     Двухмерный массив: вычисление сумм элементов
Еще ссылки по теме:

Одномерные массивы: вычисление сумм элементов - C++
Еще раз здравствуйте, дорогие форумчане. Есть небольшая просьба с решением задач. Даны натуральное число n, действительные числа a1,...

Одномерные массивы: вычисление сумм элементов - C++
Еще раз здравствуйте, дорогие форумчане. Мне еще раз нужна ваша помощь по задаче. Если сможете, то помогите, пожалуйста. Собственно...

Одномерные массивы: вычисление сумм элементов - C++
Злравствуйте, дорогие форумчане. Мне снова нужна ваша помощь по одномерным массивам. На этот раз три задачи первых я решил, а вторые...

Дан двухмерный массив n*m элементов. Определить, сколько раз встречаеться число 7 среди элементов массива с++ - C++
Дан двухмерный массив n*m элементов. Определить, сколько раз встречаеться число 7 среди элементов массива

Дан двухмерный массив n*m элементов. Определить, сколько раз встречаеться число 7 среди элементов массива - C++
Дан двухмерный массив n*m элементов. Определить, сколько раз встречаеться число 7 среди элементов массива


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

Или воспользуйтесь поиском по форуму:
sanyachel9binsk
1 / 1 / 0
Регистрация: 27.10.2012
Сообщений: 209
03.02.2013, 17:36  [ТС]     Двухмерный массив: вычисление сумм элементов #15
Спасибо еще раз)
Yandex
Объявления
03.02.2013, 17:36     Двухмерный массив: вычисление сумм элементов
Ответ Создать тему
Опции темы

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