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

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

Войти
Регистрация
Восстановить пароль
 
Sapendo
5 / 5 / 3
Регистрация: 13.05.2014
Сообщений: 130
#1

В массиве заменить отрицательное на положительное число и наоборот - C++

17.07.2014, 00:25. Просмотров 301. Ответов 5
Метки нет (Все метки)

Нужно в массиве заменить отрицательное на положительное число и наоборот!!!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# include <iostream>
# include <ctime>
using namespace std;
void sign_change (int *mas, int size)
{
    srand (time(NULL));
    for (int i=0; i<size; i++)
    {
        if (*mas<0||*mas>0)
            *mas*=-1;
        cout<<*mas<<'\t';
    }
}
void main ()
{
    const int size=10;
    int mas [size]={-1,2,-3,4,-5,6,-7,8,-9,10};
    sign_change (mas,size);
}
Помогите понять что не так!!!!
Спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.07.2014, 00:25     В массиве заменить отрицательное на положительное число и наоборот
Посмотрите здесь:

C++ Дан массив из N целых чисел. Выяснить имеется ли в массиве хотя бы одно нечетное отрицательное число и определить его местонахождение в массиве
C++ Определить, сколько пар (положительное число, отрицательное число) находятся в начале массива
C++ Дана последовательность целых чисел a1, a2, ..., an. Выяснить, какое число встречается раньше - положительное или отрицательное.
Выяснить, какое число встречается в последовательности чаще: положительное или отрицательное C++
C++ в двумерном числовом массиве * все отрицательное элементы заменить нулями
Если в массиве есть хоть 1 отрицательное число, то программа должна печатать max, а если нет - то 0 C++
C++ Найти первое отрицательное число в массиве, заменить его на ноль
C++ Найти отрицательное число и после отрицательное число заменить все элемент на нули
C++ Найти минимальное положительное число в заданном массиве, а если таких нет, вывести на экран ноль
C++ Заменить в массиве единицы нулями и наоборот
C++ заменить каждое второе отрицательное число на половину максимума
C++ Выяснить, какое число в массиве встретится ранее – положительное или отрицательное

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jewbacabra
1980 / 1644 / 602
Регистрация: 24.04.2014
Сообщений: 4,686
17.07.2014, 00:28     В массиве заменить отрицательное на положительное число и наоборот #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# include <iostream>
using namespace std;
void sign_change (int *mas, int size)
{
    for (int* m=mas; m!=mas+size; m++)
    {
        *m *= -1;
        cout<<*m<<'\t';
    }
}
void main ()
{
    const int size=10;
    int mas [size]={-1,2,-3,4,-5,6,-7,8,-9,10};
    sign_change (mas,size);
}
Sapendo
5 / 5 / 3
Регистрация: 13.05.2014
Сообщений: 130
17.07.2014, 00:30  [ТС]     В массиве заменить отрицательное на положительное число и наоборот #3
Спасибо! Забыл про mas++
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# include <iostream>
# include <ctime>
using namespace std;
void sign_change (int *mas, int size)
{
    srand (time(NULL));
    for (int i=0; i<size; i++, mas++)
    {
            *mas*=-1;
        cout<<*mas<<'\t';
    }
}
void main ()
{
    const int size=10;
    int mas [size]={-1,2,-3,4,-5,6,-7,8,-9,10};
    sign_change (mas,size);
zss
Модератор
Эксперт С++
 Аватар для zss
6123 / 5726 / 1852
Регистрация: 18.12.2011
Сообщений: 14,630
Завершенные тесты: 1
17.07.2014, 08:37     В массиве заменить отрицательное на положительное число и наоборот #4
Jewbacabra, мне кажется, умножение на -1 для изменения знака - это издевательство над процессором.
C++
1
2
for (int* m=mas; m!=mas+size; m++)
          *m = -(*m);
Jewbacabra
1980 / 1644 / 602
Регистрация: 24.04.2014
Сообщений: 4,686
17.07.2014, 10:13     В массиве заменить отрицательное на положительное число и наоборот #5
zss, да действительно. но возможно компилятор этот момент бы оптимизировал.
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
17.07.2014, 11:26     В массиве заменить отрицательное на положительное число и наоборот #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <vector>
#include <algorithm>
#include <iostream>
#include <iterator>
 
int main()
{
   std::vector<int> v = {1,2,-1,-2,3,-3};
   std::transform(v.begin(), v.end(), v.begin(), std::negate<int>());
   std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
   std::cout << std::endl;
}
Yandex
Объявления
17.07.2014, 11:26     В массиве заменить отрицательное на положительное число и наоборот
Ответ Создать тему
Опции темы

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