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

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

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

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

03.02.2013, 16:45. Просмотров 409. Ответов 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;
}
Но по-моему, у меня что-то не так...
Можете подсказать, что именно?
Или исправить программу...Пожалуйста. С меня много +.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.02.2013, 16:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Двухмерный массив: вычисление сумм элементов (C++):

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

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

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

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

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

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

15
sanyachel9binsk
1 / 1 / 0
Регистрация: 27.10.2012
Сообщений: 209
03.02.2013, 16:47  [ТС] #2
Вот скрин задания, если понадобится.
0
Миниатюры
Двухмерный массив: вычисление сумм элементов  
sanyachel9binsk
1 / 1 / 0
Регистрация: 27.10.2012
Сообщений: 209
03.02.2013, 17:08  [ТС] #3
АП.
0
Пёс
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];
            }
Уважаемый, а зачем нам сумма в строке? И что это это за бредовое условие?
0
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];
            }
Вот так тогда.
0
Пёс
228 / 76 / 4
Регистрация: 03.02.2013
Сообщений: 311
03.02.2013, 17:17 #6
Цитата Сообщение от sanyachel9binsk Посмотреть сообщение
Вот скрин задания, если понадобится.
У вас в задании написано что надо найти НОМЕРА СТРОК, в которых все элементы ЧЁТНЫЕ

Добавлено через 3 минуты
А номера строк в которых все элементы чётные - это такие i в выражении array[i][j], при которых любые j в диапазоне от 0 до 9 (это в вашем случае) при делении на 2 дают остаток 0
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
А можете код показать?
0
Пёс
228 / 76 / 4
Регистрация: 03.02.2013
Сообщений: 311
03.02.2013, 17:23 #8
Но это код не элегантый и не понятный сразу. Сейчас я вам напишу хороший пример.
0
DEA7H
.NET ONLY
63 / 63 / 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

Пользуйтесь...
1
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

Пользуйтесь...
Спасибо огромное!)
0
DEA7H
.NET ONLY
63 / 63 / 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.
0
Пёс
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;
    }
0
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();
}
0
DEA7H
.NET ONLY
63 / 63 / 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;
}
1
sanyachel9binsk
1 / 1 / 0
Регистрация: 27.10.2012
Сообщений: 209
03.02.2013, 17:36  [ТС] #15
Спасибо еще раз)
0
03.02.2013, 17:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2013, 17:36
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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