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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
wertrix
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 49
#1

Определить количество положительных элементов массива, предшествующих первому отрицательному - C++

05.10.2010, 11:48. Просмотров 1302. Ответов 11
Метки нет (Все метки)

Определить количество положительных элементов массива, предшествующих первому отрицательному.
Помогите пожалуйста решить данную задачу.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2010, 11:48     Определить количество положительных элементов массива, предшествующих первому отрицательному
Посмотрите здесь:

Определить количество положительных элементов массива, предшествующих первому отрицательному - C++
Определить количество положительных элементов массива, предшествующих первому отрицательному. Входной файл lb 4_17. in содержит в первой...

Для каждого массива определить количество элементов, предшествующих первому отрицательному - C++
1.даны вещественные массивы A , S.Для каждого массива определить количество элементов , предшествующих первому отрицательному элементу...

Найти количество элементов массива, предшествующих первому отрицательному - C++
Найти количество элементов предшествующих первому отрицательному.Если их меньше половино,то заменить отрицательные N на 0

Найти сумму и количество положительных элементов, предшествующих первому нулевому элементу массива - C++
. Дан массив А(10). Найти сумму и количество положительных элементов, предшествующих первому нулевому элементу

Определить количество пробелов среди символов, предшествующих первому восклицательному знаку - C++
даны символы s1, s2,....Известно что символ s1 отличен от восклицательного знака и что среди s2, s3,.. есть по крайней мере один...

Произведение отрицательных элементов массива, предшествующих первому положительному элементу - C++
Найти произведение отрицательных элементов массива, предшествующих первому положительному элементу. Если по какой-либо причине вычислить...

Найти среднее арифметическое отрицательных элементов массива, предшествующих первому положительному элементу; проверить, упорядочены ли элементы по во - C++
Помогите, пожалуйста! Сегодня зачет, а у меня ноут полетел!! нужен такой код до трех часов: 1)Найти среднее арифметическое отрицательных...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
05.10.2010, 12:45     Определить количество положительных элементов массива, предшествующих первому отрицательному #2
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
#include <iostream>
#include <algorithm>
#include <iterator>
 
bool less0(int num) { return num < 0; }
bool greater0(int num) { return num > 0; }
 
int main(){
    const int SIZE = 5;
    int a[SIZE] = { 0, 2, 3, -5, -9 };
    int b[SIZE] = { -1, 2, 3, -2, 1 };
    int c[SIZE] = { 1, 2, 3, 4, 5 };
    int d[SIZE] = { 1, 2, -1, -2, 0 };
    int cnt;
 
    std::cout << "Array A: ";
    std::copy(a, a + SIZE, std::ostream_iterator<int>(std::cout, " "));
    cnt = std::distance(a, std::find_if(a, a + SIZE, less0));
    switch ( cnt ) {
    case 0:
        std::cout << "  : No elements before first negative" << std::endl;
        break;
    case SIZE:
        std::cout << "  : All elements are positive" << std::endl;
        break;
    default:
        std::cout << "  : " << std::count_if(a, a + cnt, greater0) << " positive elements before first negative" << std::endl;
        break;
    }
 
    std::cout << "Array B: ";
    std::copy(b, b + SIZE, std::ostream_iterator<int>(std::cout, " "));
    cnt = std::distance(b, std::find_if(b, b + SIZE, less0));
    switch ( cnt ) {
    case 0:
        std::cout << "  : No elements before first negative" << std::endl;
        break;
    case SIZE:
        std::cout << "  : All elements are positive" << std::endl;
        break;
    default:
        std::cout << "  : " << std::count_if(b, b + cnt, greater0) << " positive elements before first negative" << std::endl;
        break;
    }
 
    std::cout << "Array C: ";
    std::copy(c, c + SIZE, std::ostream_iterator<int>(std::cout, " "));
    cnt = std::distance(c, std::find_if(c, c + SIZE, less0));
    switch ( cnt ) {
    case 0:
        std::cout << "  : No elements before first negative" << std::endl;
        break;
    case SIZE:
        std::cout << "  : All elements are positive" << std::endl;
        break;
    default:
        std::cout << "  : " << std::count_if(c, c + cnt, greater0) << " positive elements before first negative" << std::endl;
        break;
    }
 
    std::cout << "Array D: ";
    std::copy(d, d + SIZE, std::ostream_iterator<int>(std::cout, " "));
    cnt = std::distance(d, std::find_if(d, d + SIZE, less0));
    switch ( cnt ) {
    case 0:
        std::cout << "  : No elements before first negative" << std::endl;
        break;
    case SIZE:
        std::cout << "  : All elements are positive" << std::endl;
        break;
    default:
        std::cout << "  : " << std::count_if(d, d + cnt, greater0) << " positive elements before first negative" << std::endl;
        break;
    }
 
    return 0;
}
wertrix
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 49
05.10.2010, 13:00  [ТС]     Определить количество положительных элементов массива, предшествующих первому отрицательному #3
Программа "[7120] 11.exe: Машинный код" завершилась с кодом 0 (0x0).

При компиляции выскакивает окошко, закрывается пишет это...
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
05.10.2010, 13:32     Определить количество положительных элементов массива, предшествующих первому отрицательному #4
Цитата Сообщение от wertrix Посмотреть сообщение
Программа "[7120] 11.exe: Машинный код" завершилась с кодом 0 (0x0).
Замечательно просто она завершилась! Были бы ошибки - был бы код возврата отличный от нуля.

Цитата Сообщение от wertrix Посмотреть сообщение
При компиляции выскакивает окошко, закрывается пишет это...
вот это прочитайте создаю исполняемый файл запускаю окно появляется на доли секунды и изчезает
wertrix
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 49
05.10.2010, 13:42  [ТС]     Определить количество положительных элементов массива, предшествующих первому отрицательному #5
Конечно, огромное вам спасибо за проделанную работу, но мне надо простенькую программку, у нас только начали изучать массивы, и мы их делали через
C++
1
2
3
4
5
6
7
8
9
const int N1=100;
int A[N1];
int n,i=0;
printf("vvedite razmer massiva:");
scanf(%d",&n);
for (i=0; i<n; i++)
{printf("vvedite element massiva");
scanf("%d",&A[i]);
}
Мы так их вводили, и мне надо было чтобы решение было примерно таким же ;-).
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
05.10.2010, 13:59     Определить количество положительных элементов массива, предшествующих первому отрицательному #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
24
25
26
27
28
29
30
#include <stdio.h>
#include <conio.h>
 
int main()
{
const int SIZE=100;
int A[SIZE];
 
int n,i,k=0;
printf("vvedite razmer massiva: ",i);
scanf("%d",&n);
for (i=0; i<n; i++)
{
    printf("vvedite %d element massiva: ",i);
    scanf("%d",&A[i]);
}
 
for (i=0; i<n; i++)
{
    if(A[i]>0)
        k++;
    else if(A[i]<0)
        break;
}
 
printf("Kolvo = %d",k);
/////
getch();
return 0;
}
wertrix
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 49
05.10.2010, 14:04  [ТС]     Определить количество положительных элементов массива, предшествующих первому отрицательному #7
Спасибо вам всем огромное
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
05.10.2010, 14:05     Определить количество положительных элементов массива, предшествующих первому отрицательному #8
Цитата Сообщение от wertrix Посмотреть сообщение
const int N1=100;
и не лень было по 100 элементов каждый раз вводить?
Цитата Сообщение от wertrix Посмотреть сообщение
Мы так их вводили, и мне надо было чтобы решение было примерно таким же
А вам не объясняли, почему плохо смешивать С и С++ код в одной программе? В прочем не Вы первый, кого вот такому гибридному языку учат. Вот Вам на С то же задание
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
#include <stdio.h>
#include <stdlib.h>
 
int main(void){
    int * arr, size, i, j, cnt;
 
    printf("Number of elements: ");
    scanf("%d", &size);
    if ( ( arr = (int*)malloc(sizeof(int) * size) ) == NULL ){
        fprintf(stderr, "Memory error!\n");
        exit(1);
    }
    for ( i = 0; i < size; ++i ){
        printf("Array[%d] = ", i);
        scanf("%d", &arr[i]);
    }
 
    for ( i = 0; i < size; ++i )
        if ( arr[i] < 0 )
            break;
    if ( i == 0 ){
        printf("Array starts from negative element\n");
    }
    else if ( i == size ){
        printf("No negative elements found in array\n");
    }
    else {
        for ( cnt = j = 0; j < i; ++j )
            if ( arr[j] > 0 )
                ++cnt;
        printf("%d positive elements before first negative\n", cnt);
    }
 
    free(arr);
    system("pause");
    exit(0);
}
wertrix
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 49
05.10.2010, 14:52  [ТС]     Определить количество положительных элементов массива, предшествующих первому отрицательному #9
Спасибо еще раз.

Цитата Сообщение от easybudda Посмотреть сообщение
А вам не объясняли, почему плохо смешивать С и С++ код в одной программе? В прочем не Вы первый, кого вот такому гибридному языку учат. Вот Вам на С то же задание
Я даже не подозревал, что такому могут учить. Вы можете сказать, в чем недостатки смешивания С и С++ кода в одной программе?
yariknarik
0 / 3 / 0
Регистрация: 02.06.2010
Сообщений: 36
05.10.2010, 15:10     Определить количество положительных элементов массива, предшествующих первому отрицательному #10
компилятор может тупить, некоторые команды существующте в С неупотребляются в С++, кроме того в С нет классов, если прога маленькая, это не создает много проблем, а в больших прогах потом очень трудно найти ошибки... компилятор не всегда их показывает.
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
05.10.2010, 15:33     Определить количество положительных элементов массива, предшествующих первому отрицательному #11
Цитата Сообщение от yariknarik Посмотреть сообщение
компилятор может тупить, некоторые команды существующте в С неупотребляются в С++, кроме того в С нет классов, если прога маленькая, это не создает много проблем, а в больших прогах потом очень трудно найти ошибки... компилятор не всегда их показывает.
Цитата Сообщение от wertrix Посмотреть сообщение
Вы можете сказать, в чем недостатки смешивания С и С++ кода в одной программе?
Ну в общих чертах Вам ответили. Конкретнее - коль скоро С++ объектно ориентированный язык программирования, то и потоки ввода/вывода в нём представлены объектами соответствующих классов ( cin - объект класса istream, cout - ostream ), С в стиле UNIX воспринимает stdin, как файл, открытый для чтения, stdout - как файл, открытый для записи. Если смешивать оба подхода в одной программе - получится, что для одного и того же потока используются разные буферы и часть ввода/вывода может просто теряться. К тому же обработка ошибок (в том числе и ввода/вывода) в С и С++ организована по-разному. Вот к примеру програмка, читающая с консоли число, в случае ошибки ввода присваивающая числу значение по умолчанию и выводящая число обратно на консоль
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 
int main(void){
    int number;
 
    printf("Enter some number: ");
    if ( scanf("%d", &number) != 1 ){
        fprintf(stderr, "Wrong input! Setting number to default value - 0\n");
        number = 0;
    }
 
    printf("The number is %d\n", number);
 
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
int main(){
    int number;
 
    std::cin.exceptions(std::cin.failbit);
    std::cout << "Enter some number: ";
    try {
        std::cin >> number;
    }
    catch ( std::ios_base::failure & ){
        std::cerr << "Wrong input, setting number to default value - 0" << std::endl;
        number = 0;
    }
 
    std::cout << "The number is " << number << std::endl;
 
    return 0;
}
В таком простом примере, конечно, без разницы - и так работает, и эдак, а вот когда встанет вопрос, как бы это вывести поля класса (к примеру), прийдётся задуматься... То ли пытаться printf() перегружать , то ли переделывать вывод так, как он в С++ задуман, а переучиваться всегда сложнее...

Добавлено через 1 минуту
а уж как до динамической памяти дело доходит, за использование malloc()/free() вперемешку с new/delete можно сразу конечности отрывать...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2010, 15:47     Определить количество положительных элементов массива, предшествующих первому отрицательному
Еще ссылки по теме:

Определить количество положительных и количество отрицательных элементов заданного массива - C++
Определить количество положительных и количество отрицательных чисел массива

Определить количество положительных и количество отрицательных элементов массива - C++
Определить количество положительных и количество отрицательных элементов массива Заранее огромное спасибо!

Определить количество положительных элементов массива - C++
27. Дан массив А(6). Определить количество положительных элементов

Определить количество положительных элементов массива до последнего нулевого - C++
11. Составить программу, которая определяет количество положительных элементов до последнего нулевого элемента и количество отрицательных...

Определить количество положительных, отрицательных и нулевых элементов массива. - C++
(Язык C) Дан массив P(m), m=16. Определить количество положительных элементов KP, количество отрицательных элементов KM, количество...


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

Или воспользуйтесь поиском по форуму:
wertrix
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 49
05.10.2010, 15:47  [ТС]     Определить количество положительных элементов массива, предшествующих первому отрицательному #12
Спасибо за разъяснения
Yandex
Объявления
05.10.2010, 15:47     Определить количество положительных элементов массива, предшествующих первому отрицательному
Ответ Создать тему
Опции темы

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