С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Grafon
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 19
#1

Все отрицательные среди данных числа заменить на 0 - C++

12.03.2014, 15:57. Просмотров 1729. Ответов 40
Метки нет (Все метки)

Даны четыре числа. Все отрицательные среди них числа заменить на 0
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2014, 15:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Все отрицательные среди данных числа заменить на 0 (C++):

Заменить все отрицательные числа их модулями - C++
Помогите решить с использованием цикла While Ввести с клавиатуры 10 чисел – положительных и отрицательных. Заменить все...

Ввести с клавиатуры 10 чисел. Если среди них есть числа большие 15, заменить их на 15. Напечатать все полученные числа. - C++
Помогите решить задачу в Turdo C++, там где используется printf scanf: Ввести с клавиатуры 10 чисел. Если среди них есть числа большие...

Ввести с клавиатуры 10 чисел. Если среди них есть числа, большие 15, заменить их на 15. Напечатать все полученные числа - C++
Ввести с клавиатуры 10 чисел. Если среди них есть числа, большие 15, заменить их на 15. Напечатать все полученные числа.

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

Все отрицательные числа в массиве заменить минимальным значением элемента - C++
Есть массив из n-чисел. Все отрицательные числа в нем заменить минимальным значением элемента этого массива

Даны действительные числа. Заменить все отрицательные элементы их квадратами - C++
Я новичок в программировании, помогите. Даны действительные числа А1....,А18. Заменить все отрицательные элементы их квадратами и вывести...

40
SatanaXIII
Супер-модератор
Эксперт С++
5642 / 2677 / 252
Регистрация: 01.11.2011
Сообщений: 6,574
Завершенные тесты: 1
12.03.2014, 16:05 #2
C++
1
2
3
4
if( repeat1 < 0 ) repeat1 = 0;
if( SystemBugCount < 0 ) SystemBugCount = 0;
if( x < 0 ) x = 0;
if( float__ < 0 ) float__ = 0;
0
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 677
Завершенные тесты: 1
12.03.2014, 16:16 #3
Давайте поизвращаемся +)

C++
1
2
3
4
5
 signed int NUMS[4],i;
 for(i=0;i<4;i++)cin>>NUMS[i];
 for(i=0;i<4;i++)NUMS[i]*=(1+(NUMS[i]>>31));
 for(i=0;i<4;i++)cout<<NUMS[i]<<" ";
}
0
SatanaXIII
Супер-модератор
Эксперт С++
5642 / 2677 / 252
Регистрация: 01.11.2011
Сообщений: 6,574
Завершенные тесты: 1
12.03.2014, 16:17 #4
Retyrn0, вы заголовок темы читали?
0
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 677
Завершенные тесты: 1
12.03.2014, 16:22 #5
Цитата Сообщение от SatanaXIII Посмотреть сообщение
вы заголовок темы читали?
Нет. А надо было?) Ну поменять на if(NUMS[i]<0)NUMS[i]=0;
Но это же скучно.)
0
SatanaXIII
Супер-модератор
Эксперт С++
5642 / 2677 / 252
Регистрация: 01.11.2011
Сообщений: 6,574
Завершенные тесты: 1
12.03.2014, 16:25 #6
Цитата Сообщение от Retyrn0 Посмотреть сообщение
Но это же скучно.)
Это не важно. Главное ведь человеку помочь.
0
KOPOJI
Эксперт HTML/CSSЭксперт PHP
16702 / 6624 / 433
Регистрация: 12.06.2012
Сообщений: 19,879
Завершенные тесты: 1
12.03.2014, 16:34 #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
const int N = 4;
 
int main(int argc, char *argv[])
{
    int x[N];
    
    for(int i = 0; i < N; ++i)
    {
        std::cin >> x[i];
        x[i] *= x[i] >= 0;
    }
    for(int i = 0; i < N; ++i)
        std::cout << x[i] << ' ';
    std::cout << std::endl;
    
    return 0;
}
1
TenGen
Будущее рядом
98 / 96 / 20
Регистрация: 06.03.2014
Сообщений: 342
12.03.2014, 16:36 #8
SatanaXIII, я бы все таки запрограммировал понадежнее:

C++
1
2
3
4
5
6
7
8
const int repeat1_zero = 0;
const int SystemBugCount_zero = 0;
const int x_zero = 0;
const int float__zero = 0;
if( repeat1 < 0 ) repeat1 = repeat1_zero;
if( SystemBugCount < 0 ) SystemBugCount = SystemBugCount_zero;
if( x < 0 ) x = x_zero;
if( float__ < 0 ) float__ = float__zero;
А то сами понимаете, задача не так проста, какой кажется
0
John Prick
824 / 757 / 152
Регистрация: 27.07.2012
Сообщений: 2,156
Завершенные тесты: 3
12.03.2014, 16:45 #9
C++
1
2
3
4
5
6
7
8
9
int replacer(int x) { return (x < 0) ? 0 : x; }
 
int main(void)
{
   int arr[N];
//...
   std::transform(arr, arr + N, arr, replacer);
//...
}
0
SatanaXIII
Супер-модератор
Эксперт С++
5642 / 2677 / 252
Регистрация: 01.11.2011
Сообщений: 6,574
Завершенные тесты: 1
12.03.2014, 16:48 #10
Цитата Сообщение от TenGen Посмотреть сообщение
я бы все таки запрограммировал понадежнее
Не факт, что они именно так даны. Тут без пояснений тс мы бессильны.
Цитата Сообщение от TenGen Посмотреть сообщение
А то сами понимаете, задача не так проста, какой кажется
Само собой. Иначе не было б тут уже два листа обсуждений.
0
ValeryS
Модератор
6729 / 5138 / 485
Регистрация: 14.02.2011
Сообщений: 17,246
12.03.2014, 16:51 #11
Цитата Сообщение от KOPOJI Посмотреть сообщение
x[i] *= x[i] >= 0;
опередил
но можно еще так извращаться
C++
1
 x[i] *= x[i] > 0;
если элемент 0 то сравнение ложь 0 но умножение 0*0=0
так что только отрицательные обнуляться
а можно еще вот так
C++
1
x[i]*= x[i]*!(x[i]&0x80000000);
но это жесткая привязка к int 32 разряда
0
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 677
Завершенные тесты: 1
12.03.2014, 17:01 #12
Цитата Сообщение от TenGen Посмотреть сообщение
А то сами понимаете, задача не так проста, какой кажется
Та да
Но тогда уже и
C++
1
2
3
4
if((MASS=new signed int[count])==NULL)
{
  cout<<"ERROR!!!!!!!!!!!!!!!!!!!!!!!!!"<<endl;
}
нужно прикрутить, а-то вдруг массив станет не на 4, а на 5 элементов, а у системы не окажется искомых 20 с копейками байт)
0
ValeryS
Модератор
6729 / 5138 / 485
Регистрация: 14.02.2011
Сообщений: 17,246
12.03.2014, 17:07 #13
Цитата Сообщение от Retyrn0 Посмотреть сообщение
MASS=new signed int[count])==NULL
и давно научили new с NULL сравнивать?
исключения нужно ловить
0
KOPOJI
Эксперт HTML/CSSЭксперт PHP
16702 / 6624 / 433
Регистрация: 12.06.2012
Сообщений: 19,879
Завершенные тесты: 1
12.03.2014, 17:26 #14
Цитата Сообщение от ValeryS Посмотреть сообщение
но это жесткая привязка к int 32 разряда
ну тогда вы немного переборщили, зачем домножать на число?
C
1
x[i] *= !(x[i] & 0x80000000);
Хотя если "помудреннее", можно и так
C
1
x[i] *= !(x[i] & (1 << 31));
0
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 677
Завершенные тесты: 1
12.03.2014, 17:41 #15
Цитата Сообщение от ValeryS Посмотреть сообщение
исключения нужно ловить
Точно...ох уж эти правила хорошего тона...Мы сделали единогласный вывод, что ТС лучше изучать программирование на БОЛЕЕ ПРОСТЫХ ПРИМЕРАХ, чем он привёл ХД
0
12.03.2014, 17:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2014, 17:41
Привет! Вот еще темы с ответами:

Одномерный массив. Все отрицательные среди них числа возвести в квадрат, найти их сумму и количество - C++
Дана последовательность из М чисел. Все отрицательные среди них числа возвести в квадрат, найти их сумму и количество

Одномерный массив. Все отрицательные среди них числа возвести в квадрат, найти их сумму и количество - C++
Дана последовательность из М чисел. Все отрицательные среди них числа возвести в квадрат, найти их сумму и количество.

Найти минимум в массиве и заменить все отрицательные чётные числа на его значение - C++
Ребята, посмотрите пожалуйста в чем не доработка или ошибка Судя по условию, нечетные числа все равно отрабатывает, к if-у и else уже...

Найти минимум в массиве и заменить все отрицательные чётные числа на его значение - C++
Ребята, посмотрите пожалуйста в чем не доработка или ошибка Судя по условию, нечетные числа все равно отрабатывает, к if-у и else уже...


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

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

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