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

дано 100 чисел, сначала вывести все отрицательные а затем все остальные - C++

Восстановить пароль Регистрация
 
Ruzzl
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 9
02.11.2010, 17:53     дано 100 чисел, сначала вывести все отрицательные а затем все остальные #1
написать последовательность операторов:
дано 100 чисел..сначала вывести все отрицательные а затем все остальные
я нереально путаюсь с массивами..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2010, 17:53     дано 100 чисел, сначала вывести все отрицательные а затем все остальные
Посмотрите здесь:

Записать в этот же массив сначала все положительные числа и нули, а затем все отрицательные C++
C++ Напечатать сначала все отрицательные числа этой последовательности, затем все положительные
Даны 100 чисел. Напечатать сначала все отрицательные из них, а затем все остальные C++
Дано 12 чисел. Напечатать сначала вс отрицательные из них, а затем все остальные. C++
C++ Дается n чисел, нужно вывести сначала все нечетные а затем все четные (найти ошибку)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
02.11.2010, 17:58     дано 100 чисел, сначала вывести все отрицательные а затем все остальные #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
int main()
{
    const int n = 100;
    int i;
    double mas[n];
    for(i = 0; i < n; ++i)
        std::cin>>mas[i];
    for(i = 0; i < n; ++i)
        if(mas[i] < 0)
            std::cout<<mas[i]<<' ';
    for(i = 0; i < n; ++i)
        if(mas[i] >= 0)
            std::cout<<mas[i]<<' ';
    return 0;
}
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
02.11.2010, 18:07     дано 100 чисел, сначала вывести все отрицательные а затем все остальные #3
Ruzzl, как вы изящно - "последовательность операторов"... Не чета банальному "написать программу", слышишь - и сразу хочется сесть и эту последовательность написать...
KpeHDeJIb
 Аватар для KpeHDeJIb
56 / 56 / 3
Регистрация: 31.10.2010
Сообщений: 103
02.11.2010, 18:16     дано 100 чисел, сначала вывести все отрицательные а затем все остальные #4
Можно пойти дальше

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
#include <iostream>
#include <algorithm>
#include <cstdlib>
#include <ctime>
 
int Random()
{
    return rand () % 101 - 50;
}
 
void PrintNegative(int a)
{
    if (a < 0)
        std::cout << a << std::endl;
}
 
void PrintPositive(int a)
{
    if (a >= 0)
        std::cout << a << std::endl;
}
 
int main()
{
    const unsigned n = 100;
    int array[n] = {0};
 
    srand((unsigned int)time(0));
 
    std::generate(array, array + n, Random);
    std::for_each(array, array + n, PrintNegative);
    std::for_each(array, array + n, PrintPositive);
 
    return 0;
}
Добавлено через 5 минут
Или даже так:

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
#include <iostream>
#include <algorithm>
#include <cstdlib>
#include <ctime>
 
int Random()
{
    return rand () % 101 - 50;
}
 
bool IsNegative(int a)
{
    return a < 0;
}
 
void Print(int a)
{
    std::cout << a << std::endl;
}
 
int main()
{
    const unsigned n = 100;
    int array[n] = {0};
 
    srand((unsigned int)time(0));
 
    std::generate(array, array + n, Random);
 
    std::stable_partition(array, array + n, IsNegative);
    std::for_each(array, array + n, Print);
 
    return 0;
}
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
02.11.2010, 18:19     дано 100 чисел, сначала вывести все отрицательные а затем все остальные #5
Можно обойтись и без массивов:
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
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
 
#define imin -25
#define imax 25
 
void printNegativeBefore(size_t n)
{
    if(!n)
        return;
    int currentNumber = rand() % (imax - imin + 1) + imin;
    if(currentNumber < 0)
    {
        printf("%d\n", currentNumber);
        printNegativeBefore(--n);
    }
    else
    {
        printNegativeBefore(--n);
        printf("%d\n", currentNumber);
    }
}
 
int main()
{
    srand((size_t) (NULL));
 
    size_t count;
    printf("Input the count of numbers: ");
    scanf("%u", &count);
    printNegativeBefore(count);
    
    return EXIT_SUCCESS;
}
Добавлено через 1 минуту
Цитата Сообщение от silent_1991 Посмотреть сообщение
слышишь - и сразу хочется сесть и эту последовательность написать...
а у меня тело двигалось само собой...
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
02.11.2010, 18:26     дано 100 чисел, сначала вывести все отрицательные а затем все остальные #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <sstream>
 
int main(){
    const int size(10); // 100 чисел лень писать, но принцип тот же
    int arr[size] = { 4, -3, 1, 8, -2, 0, 5, -6, 2, -3 };
 
    std::stringstream pos, neg;
    for ( int i = 0; i < size; ++i ){
        if ( arr[i] < 0 )
            neg << arr[i] << ' ';
        else
            pos << arr[i] << ' ';
    }
 
    std::cout << neg.str() << pos.str() << std::endl;
 
    return 0;
}
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
02.11.2010, 19:04     дано 100 чисел, сначала вывести все отрицательные а затем все остальные #7
Ага. Понеслась. xD

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
#include <vector>
#include <algorithm>
#include <ctime>
#include <cstdlib>
#include <iostream>
#include <functional>
 
class Array
{
public:
    Array(const int size=100)
    {
        Vec.resize(size);
    }
    
    ~Array()
    {
    }
    
    void fill_arr_by_rand()
    {
        const int max=101;
        const int min=50;
        for(size_t i=0; i<Vec.size(); ++i)
            Vec[i]=rand()%max-min;
    }
    
    void sortArr()
    {
          std::sort(Vec.begin(), Vec.end(), std::less<int>());
    }
    
    size_t countNeg()
    {
         return std::count_if(Vec.begin(), Vec.end(), std::bind2nd(std::less<int>(), 0));
    }
    
    const std::vector<int>& getArr() const
    {
         return Vec;
    }
    
    const size_t size() const
    {
        return Vec.size();
    }
    
    int& operator [](const size_t idx)
    {
         return Vec[idx];
    }
    
    const int& operator [](const size_t idx) const
    {
         return Vec[idx];
    }
private:
    std::vector<int> Vec;
};
 
void print_neg(const Array& Obj, const size_t numb)
{
    for(size_t i=0; i<numb; ++i)
    {
         std::cout<<Obj[i]<<' ';
    }
    std::cout<<'\n';
}
 
void print_arr(const Array& Obj, const size_t numb)
{
    for(size_t i=numb; i<Obj.size(); ++i)
         std::cout<<Obj[i]<<' ';
    std::cout<<'\n';
}
 
int main()
{
    srand(static_cast<unsigned>(time(0)));
    Array Obj;
    Obj.fill_arr_by_rand();
    Obj.sortArr();
    const size_t negnumb=Obj.countNeg();
    print_neg(Obj, negnumb);
    print_arr(Obj, negnumb);
    return 0;
}
BTR
 Аватар для BTR
8 / 8 / 1
Регистрация: 01.11.2010
Сообщений: 157
02.11.2010, 19:08     дано 100 чисел, сначала вывести все отрицательные а затем все остальные #8
Цитата Сообщение от M128K145 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
int main()
{
    const int n = 100;
    int i;
    double mas[n];
    for(i = 0; i < n; ++i)
        std::cin>>mas[i];
    for(i = 0; i < n; ++i)
        if(mas[i] < 0)
            std::cout<<mas[i]<<' ';
    for(i = 0; i < n; ++i)
        if(mas[i] >= 0)
            std::cout<<mas[i]<<' ';
    return 0;
}
А не проще сделать так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
int main()
{
    const int n = 100;
    int i;
    double mas[n];
    for(i = 0; i < n; ++i)
        cin>>mas[i];
    for(i = 0; i < n; ++i)
        if(mas[i] < 0)
            cout<<mas[i]<<' ';
    for(i = 0; i < n; ++i)
        if(mas[i] >= 0)
            cout<<mas[i]<<' ';
    return 0;
}
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
02.11.2010, 19:09     дано 100 чисел, сначала вывести все отрицательные а затем все остальные #9
BTR, Непроще.
Nameless One
02.11.2010, 19:10
  #10

Не по теме:

Цитата Сообщение от BTR Посмотреть сообщение
А не проще сделать так:
проще, но от этого карма портится

MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
02.11.2010, 19:11     дано 100 чисел, сначала вывести все отрицательные а затем все остальные #11
Цитата Сообщение от BTR Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
int main()
{
 const int n = 100;
 int i;
 double mas[n];
 for(i = 0; i < n; ++i)
 cin>>mas[i];
 for(i = 0; i < n; ++i)
 if(mas[i] < 0)
 cout<<mas[i]<<' ';
 for(i = 0; i < n; ++i)
 if(mas[i] >= 0)
 cout<<mas[i]<<' ';
 return 0;
}
Наверное проще так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using std::cout;
using std::cin;
int main()
{
 const int n = 100;
 int i;
 double mas[n];
 for(i = 0; i < n; ++i)
 cin>>mas[i];
 for(i = 0; i < n; ++i)
 if(mas[i] < 0)
 cout<<mas[i]<<' ';
 for(i = 0; i < n; ++i)
 if(mas[i] >= 0)
 cout<<mas[i]<<' ';
 return 0;
}
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
02.11.2010, 19:11     дано 100 чисел, сначала вывести все отрицательные а затем все остальные #12
Можно вопрос. Зачем искать как проще?) Правильнее указывать явно все-тк. Хотя кто как пишет так и хочет. Так что один вариант не проще и не тяжелее другого.
Nameless One
02.11.2010, 19:33
  #13

Не по теме:

Цитата Сообщение от MILAN Посмотреть сообщение
Наверное проще так:
А че уж не так:
C++
1
2
#define COUT std::cout
#define CIN std::cin

silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
02.11.2010, 19:43     дано 100 чисел, сначала вывести все отрицательные а затем все остальные #14
Не парьтесь - пользуйтесь принтэфами)))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2010, 20:17     дано 100 чисел, сначала вывести все отрицательные а затем все остальные
Еще ссылки по теме:

Вывести на экран сначала все цифры, входящие в текст, а затем все остальные литеры C++
C++ Записать в данный массив сначала все отрицательные числа и нули, затем все положительные, сохраняя порядок их следования
C++ Сначала вывести все цифры строки, а затем все остальные литеры

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

Или воспользуйтесь поиском по форуму:
Ruzzl
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 9
02.11.2010, 20:17  [ТС]     дано 100 чисел, сначала вывести все отрицательные а затем все остальные #15
Спасибо всем!
Yandex
Объявления
02.11.2010, 20:17     дано 100 чисел, сначала вывести все отрицательные а затем все остальные
Ответ Создать тему
Опции темы

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