6 / 6 / 2
Регистрация: 24.04.2013
Сообщений: 260
1

Найти колличество столбцов в которых есть числа с разными знаками

24.12.2013, 00:59. Показов 588. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Найти колличество столбцов в которых есть числа с разными знаками
Вот моё творение, что нужно изменить?
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
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    int **a, i, j, m, n, count, s = -1; bool b = false;
    cout<<"Vv. kol-vo strok = "; cin>>m;
    cout<<"\nVv. kol-vo stolbc. = "; cin>>n;
    a = new int *[m];
    for(i = 0; i<m; i++){
        a[i] = new int [n];
        }
    for(i = 0; i<m; i++){
        for(j = 0; j<n; j++){
            cout<<"a["<<i+1<<", "<<j+1<<"] = "; cin>>a[i][j];
            }
        }
    for(i = 0; i<m; i++, cout<<"\n"){
        for(j = 0; j<n; j++, cout<<"\t"){
            cout<<a[i][j];
            }
        }
    for(j = 0; j<n; j++){
        if(a[0][j]>0){
        for(i = 0; i<m; i++){
            if(a[i][j]<0) {
                b = true;
                break ;
            }
            }
        }
        else {
        for(i = 0; i<m; i++){
            if(a[i][j]>0) {
                b = true;
                break ;
            }
            }
        }
        if(b) count++;
        }
    cout<<"\nV massive "<<count<<" stobcov s razn. znakami.";
    
    system("pause");
    return EXIT_SUCCESS;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.12.2013, 00:59
Ответы с готовыми решениями:

Найти колличество столбцов матрицы, в которых все элементы одинаковы
Здравствуйте. Мне нужно написать программу которая будет в матрице m на n находить колличество...

Определить, есть ли в заданном массиве два соседних элемента с разными знаками
Дан массив из n элементов. Необходимо определить, есть ли в данном массиве два соседних элемента с...

Найти сумму положительных элементов столбцов в которых есть нулевой элемент
Найти сумму положительных элементов столбцов в которых есть нулевой элемент

Найти номер первой пары соседних элементов с разными знаками, сумма которых меньше заданного числа
procedure TForm1.Button3Click(Sender: TObject); var e,h:integer; begin ...

15
Эксперт С++
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
24.12.2013, 07:30 2
Цитата Сообщение от Relike Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
for(j = 0; j<n; j++){
 if(a[0][j]>0){
 for(i = 0; i<m; i++){
 if(a[i][j]<0) {
 b = true;
 break ;
 }
 }
 }
 else {
 for(i = 0; i<m; i++){
 if(a[i][j]>0) {
 b = true;
 break ;
 }
 }
 }
 if(b) count++;
 }
замените на:
C++
1
2
3
4
5
6
7
8
9
10
11
12
 int l1,l2;
     for(j = 0; j<n; j++){
         i1=0; l2=0; 
        for(i = 0; i<m; i++){
            if(a[i][j]<0) 
                l1++;
            if(a[i][j]>0)
                l2++;
        }
        if(l1>0 && l2>0)
            count++;
     }
1
6 / 6 / 2
Регистрация: 24.04.2013
Сообщений: 260
24.12.2013, 22:39  [ТС] 3
valeriikozlov,
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
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    int **a, i, j, m, n, count, s = -1; bool b = false;
    cout<<"Vv. kol-vo strok = "; cin>>m;
    cout<<"\nVv. kol-vo stolbc. = "; cin>>n;
    a = new int *[m];
    for(i = 0; i<m; i++){
        a[i] = new int [n];
        }
    for(i = 0; i<m; i++){
        for(j = 0; j<n; j++){
            cout<<"a["<<i+1<<", "<<j+1<<"] = "; cin>>a[i][j];
            }
        }
    for(i = 0; i<m; i++, cout<<"\n"){
        for(j = 0; j<n; j++, cout<<"\t"){
            cout<<a[i][j];
            }
        }
        
    int l1,l2;
     for(j = 0; j<n; j++){
         l1=0; l2=0; 
        for(i = 0; i<m; i++){
            if(a[i][j]<0) 
                l1++;
            if(a[i][j]>0)
                l2++;
        }
        if(l1>0 && l2>0)
            count++;
     }
    cout<<"\nV massive "<<count<<" stobcov s razn. znakami.";
    
    system("pause");
    return EXIT_SUCCESS;
}
не работает...блин

Добавлено через 2 минуты
valeriikozlov, Амсори, всё работает, начального значения count небыло. Спасибо большое!!

Добавлено через 16 минут
valeriikozlov, Сейчас пререпроверил, не правильно работает... Не понятно как считает столбцы...
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
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    //Целые : массив, переменные циклов, размерности и счетчик.
    int **a, i, j, m, n, count=0;
    cout<<"Vv. kol-vo strok = "; cin>>m;
    cout<<"\nVv. kol-vo stolbc. = "; cin>>n;
    a = new int *[m];
    for(i = 0; i<m; i++){
        a[i] = new int [n];
        }
    //заполнение массива
    for(i = 0; i<m; i++){
        for(j = 0; j<n; j++){
            cout<<"a["<<i+1<<", "<<j+1<<"] = "; cin>>a[i][j];
            }
        }
    //вывод массива на экран в виде матрицы.
    for(i = 0; i<m; i++, cout<<"\n"){
        for(j = 0; j<n; j++, cout<<"\t"){
            cout<<a[i][j];
            
            }
        }
    //Объявление двух переменных 
    int l1=0,l2=0;
     for(j = 0; j<n; j++){
        for(i = 0; i<m; i++){
            if(a[i][j]<0) 
                l1++;
            if(a[i][j]>0)
                l2++;
        }
        if(l1>0 && l2>0)
            count++;
     }
    cout<<"\nV massive "<<count<<" stobcov s razn. znakami.";
    
    system("pause");
    return EXIT_SUCCESS;
}
0
║XLR8║
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5
24.12.2013, 22:53 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <iterator>
#include <algorithm>
 
int main()
{
    const int n = 10, m = 20;
    int a[n][m], res = 0;
    
    for (int col = 0; col < m; ++col) 
        res += std::any_of(std::begin(a), std::end(a), 
                [&col](const int a[]){ return a[col] < 0; })
            && std::any_of(std::begin(a), std::end(a), 
                [&col](const int a[]){ return a[col] > 0; });
    
    std::cout << res << std::endl;
 
    return EXIT_SUCCESS;
}
1
6 / 6 / 2
Регистрация: 24.04.2013
Сообщений: 260
24.12.2013, 23:01  [ТС] 5
outoftime, как понять синтаксис???
0
║XLR8║
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5
24.12.2013, 23:04 6
Так наглядней
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <iterator>
#include <algorithm>
#include <iomanip>
 
int main()
{
    const int n = 10, m = 5;
    int a[n][m], res = 0;
    
    for (int i = 0; i < n; ++i, std::cout << std::endl)
        for (int j = 0; j < m; std::cout << std::setw(10) << a[i][j++] << " ");
    
    for (int col = 0; col < m; ++col) 
        res += std::any_of(std::begin(a), std::end(a), 
                [&col](const int a[]){ return a[col] < 0; })
            && std::any_of(std::begin(a), std::end(a), 
                [&col](const int a[]){ return a[col] > 0; });
    
    std::cout << res << std::endl;
 
    return EXIT_SUCCESS;
}
1
6 / 6 / 2
Регистрация: 24.04.2013
Сообщений: 260
24.12.2013, 23:05  [ТС] 7
outoftime, блин, нас не так учили писать....мы с
C++
1
using namespace std
пишем....многого тут я просто не понимаю(
0
║XLR8║
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5
24.12.2013, 23:09 8
http://lmgtfy.com/?q=c%2B%2B+std%3A%3Abegin
http://lmgtfy.com/?q=c%2B%2B+std%3A%3Aend
http://lmgtfy.com/?q=c%2B%2B+std%3A%3Aany_of
http://lmgtfy.com/?q=c%2B%2B+%... 0%B4%D0%B0
1
6 / 6 / 2
Регистрация: 24.04.2013
Сообщений: 260
24.12.2013, 23:11  [ТС] 9
outoftime, оригинальный вариант фразы - "Гугл в помощь")))
0
║XLR8║
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5
24.12.2013, 23:15 10
Пространство имен, что и зачем:
http://ru.wikipedia.org/wiki/%... 0%B8%D0%B5)
http://msdn.microsoft.com/ru-r... 46ksf.aspx

Добавлено через 2 минуты
std::any_of http://en.cppreference.com/w/c... ny_none_of тут вся информация которая тебе надо, если прочтешь вопросы сами отпадут
1
6 / 6 / 2
Регистрация: 24.04.2013
Сообщений: 260
24.12.2013, 23:16  [ТС] 11
outoftime, не, std:: я понял что такое. А вот например
Цитата Сообщение от outoftime Посмотреть сообщение
any_of
,
Цитата Сообщение от outoftime Посмотреть сообщение
setw(10)
,
Цитата Сообщение от outoftime Посмотреть сообщение
begin(a)
- нет. Ну ладно, спасибо, разбираться сейчас буду!

Добавлено через 48 секунд
outoftime, Проблема, агнлийского не знаю. Parle le francais)))
0
║XLR8║
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5
24.12.2013, 23:27 12
Relike, это не художественная литература, автоматический перевод вполне терпимый, только в некоторых местах могут быть ляпы.

Добавлено через 8 минут
std::setw: применяется для форматирования вывода, туда же относиться setfill, setprecision, setbase (это те что чаще всего используются)
http://www.cplusplus.com/reference/iomanip/
http://en.cppreference.com/w/cpp/header/iomanip

std::begin, std::end: возвращают итераторы на начало и конец соответственно.
1
6 / 6 / 2
Регистрация: 24.04.2013
Сообщений: 260
24.12.2013, 23:57  [ТС] 13
Я нашел ошибку.
C++
1
2
3
4
5
6
7
8
9
10
11
int l1=0,l2=0;
     for(j = 0; j<n; j++){
        for(i = 0; i<m; i++){
            if(a[i][j]<0) 
                l1++;
            if(a[i][j]>0)
                l2++;
        }
        if(l1>0 && l2>0) 
            count++;
     }
l1 и l2 не обнуляются. count всегда увеличивается в силу выполнения условия.
Всем спасибо за помощь!!!!
Вот код, может пригодится кому в будущем :
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
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    //Öåëûå : ìàññèâ, ïåðåìåííûå öèêëîâ, ðàçìåðíîñòè è ñ÷åò÷èê.
    int **a, i, j, m, n, count=0;
    cout<<"Vv. kol-vo strok = "; cin>>m;
    cout<<"\nVv. kol-vo stolbc. = "; cin>>n;
    a = new int *[m];
    for(i = 0; i<m; i++){
        a[i] = new int [n];
        }
    //çàïîëíåíèå ìàññèâà
    for(i = 0; i<m; i++){
        for(j = 0; j<n; j++){
            cout<<"a["<<i+1<<", "<<j+1<<"] = "; cin>>a[i][j];
            }
        }
    //âûâîä ìàññèâà íà ýêðàí â âèäå ìàòðèöû.
    for(i = 0; i<m; i++, cout<<"\n"){
        for(j = 0; j<n; j++, cout<<"\t"){
            cout<<a[i][j];
            
            }
        }
    //Îáúÿâëåíèå äâóõ ïåðåìåííûõ 
    int l1=0,l2=0;
     for(j = 0; j<n; j++){
        for(i = 0; i<m; i++){
            if(a[i][j]<0) 
                l1++;
            if(a[i][j]>0)
                l2++;
        }
        if(l1>0 && l2>0) {
            count++;
            l1 = 0; l2 = 0;
        }
     }
    cout<<"\nV massive "<<count<<" stobcov s razn. znakami.\n";
    
    system("pause");
    return EXIT_SUCCESS;
}
0
║XLR8║
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5
25.12.2013, 00:21 14
Relike, т.е. мой вообще не годится? (:
1
6 / 6 / 2
Регистрация: 24.04.2013
Сообщений: 260
25.12.2013, 00:27  [ТС] 15
outoftime, почему? Он намного меньше, и удобнее. Если знать. Нас просто вот так учили...что поделать. Всё равно спасибо и к вам относится, буду изучать после сессии то что вы скинули =)

Добавлено через 3 минуты
outoftime, во надо новую тему создавать...вы не знаете как перейти от алгебраической формы комплексного числа к показательной? В программе с++
0
║XLR8║
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5
25.12.2013, 01:10 16
Relike, http://ru.wikipedia.org/wiki/%... 0.B5.D0.BB
Можешь еще поискать библиотеки, которые работают с комплексными числами и подсмотреть реализацию.
0
25.12.2013, 01:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2013, 01:10
Помогаю со студенческими работами здесь

Определить, есть ли в заданном одномерном массиве два соседних элемента с разными знаками
Определить, есть ли в заданном одномерном массиве два соседних элемента с разными знаками ...

Вставить перед всеми строками в которых есть 0 первую строку после всех столбцов, в которых есть отрицательные
Вставить перед всеми строками в которых есть 0 первую строку после всех столбцов, в которых есть...

Найти номер первой пары чисел с разными знаками
Задана последовательность целых чисел. найти номер первой пары чисел с разными знаками понятия...

Найти номер последней пары соседних элементов с разными знаками
помогите решить задачу пожалуста:help:: найти номер последней пары соседних элементов с разными...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru