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

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

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

Даны 4 вещественных числа. Определить сколько из них отрицательных. - C++

29.09.2011, 14:00. Просмотров 4328. Ответов 20
Метки нет (Все метки)

Даны 4 вещественных числа. Определить сколько из них отрицательных. Оператор цикла не использовать.

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

Даны числа a, b, c. Определить, сколько из них одинаковых - C++
Дано числа a,b,c. Определить, сколько из них одинаковых.

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

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

Дано 200 вещественных чисел. Определить, сколько из них больше предыдущего числа - C++
Дано 200 вещественных чисел. Определить, сколько из них больше предыдущего числа. Заранее благодарна.

Даны три вещественных числа. Выбрать те из них, которые принадлежат интервалу (1,3). (C++) - C++
Даны три вещественных числа. Выбрать те из них, которые принадлежат интервалу (1,3). Сделать нужно на С++. Буду очень признателен!!!...

Даны три вещественных числа. Возвести в квадрат те из них, значения которых неотрицательны - C++
int x,s; if (s>=0) {x=s*s;}; Почему ответ (x) всегда равен 0?

20
magirus
29.09.2011, 14:01
  #2
 Комментарий модератора 
учитесь называть темы информативно
1
crash7007
0 / 0 / 0
Регистрация: 29.09.2011
Сообщений: 8
29.09.2011, 14:05  [ТС] #3
magirus, извиняюсь
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
29.09.2011, 14:23 #4
О! Это я могу.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Шчитаем
int Count( const float * array, int size, int i )
{
     if( size <= i )
          return 0;
     return (array[i] < 0) + Count(array, size, i+1);
}
 
int main()
{
     float array[4] = { 1.f, -5.f, 3.f, -1.f };
     // Получаем количество отрицательных чисел
     // Без использования оператора цикла
     // Какие мы молодцы то!
     int nNegatives = Count( array, 4, 0 );
 
     return 0;
}
0
crash7007
0 / 0 / 0
Регистрация: 29.09.2011
Сообщений: 8
29.09.2011, 14:50  [ТС] #5
еще варианты пожалуйста
0
OstapBender
584 / 523 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
29.09.2011, 16:42 #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
31
32
33
template <class T>
class number {
 
    static int count;
 
public:
    number(T n) { 
        if (n<0) count++;
    }
 
    static int how_much();
 
};
 
template <class T>
int number<T>::count = 0;
 
template<class T>
int number<T>::how_much() {
    return count;
}
 
 
int main(int argc, char* argv[])
{
    number<float> a[4] = { 1.f, -5.f, 3.f, -1.f };
 
    std::cout << number<float>::how_much() <<  '\n';            
 
 
    getchar();
    return 0;
}
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
29.09.2011, 16:49 #7
Цитата Сообщение от OstapBender Посмотреть сообщение
мона так
Зачем человеку шаблоном пугаешь. Без шаблона функционал сохранится.

А я всё жду вопрос про "как обменять два числа?". Можно будет много красивых реализаций придумать.)
0
Nameless One
Эксперт С++
5783 / 3432 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
29.09.2011, 17:23 #8
Определение количества отрицательных чисел на этапе компиляции:
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>
 
template <int ... Ints>
struct negatives;
 
template <int I, int ... Ints>
struct negatives<I, Ints ...>
{
    static const size_t count = (I < 0 ? 1 : 0) + negatives<Ints ...>::count;
};
 
template <>
struct negatives<>
{
    static const size_t count = 0;
};
    
int main()
{
    std::cout << negatives<int(-1.f), int(-5.f), int(3.f), int(-3.f)>::count << std::endl;
    
    return 0;
}
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
29.09.2011, 17:31 #9
Уверен, что со списком типов и в старом стандарте замутить аналогичное можно.
0
Nameless One
Эксперт С++
5783 / 3432 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
29.09.2011, 17:33 #10
Deviaphan, что такое "список типов"?
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
29.09.2011, 17:38 #11
У Александрэску в "Современном проектировании" есть. Я так и не нашёл, где бы мне их использовать и уже забыл.)
1
crash7007
0 / 0 / 0
Регистрация: 29.09.2011
Сообщений: 8
29.09.2011, 19:23  [ТС] #12
а можно эту задачу как нибудь вообще по простому решить? как решил бы человек который изучает с++ меньше месяца...
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
29.09.2011, 19:37 #13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main()
{
float a[4] = { -1.0, 5.3f, -2.0f, -3.f };
 
int i = 0;
int count = 0;
NOT_A_LOOP_OPERATOR:
if( a[i] < 0 )
    count++;
i++;
if( i < 4 )
    goto NOT_A_LOOP_OPERATOR;
 
return 0;
}
1
crash7007
0 / 0 / 0
Регистрация: 29.09.2011
Сообщений: 8
29.09.2011, 23:14  [ТС] #14
Deviaphan,
а можно последний вариан прокомментировать,просто я вообще не шарю...

1) что такое float
2) что значит f после чисел
3) что такое NOT_A_LOOP_OPERATOR:
4) что такое goto

Добавлено через 20 минут
и она не работает к сожалению
0
alkagolik
Заблокирован
30.09.2011, 00:56 #15
Цитата Сообщение от crash7007 Посмотреть сообщение
человек который изучает с++ меньше месяца
Цитата Сообщение от crash7007 Посмотреть сообщение
что такое float
за месяц два абзаца прочитал?
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#define negative(x)    ((x < 0) ? 1 : 0)
 
int main(){
    float arr[] = {0.01, -2.2212, -0.012, 4.4};
    for (int i = 0; i < 4; ++i)
        if(negative(arr[i]))
            std::cout << arr[i] << "\n";
     return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2011, 00:56
Привет! Вот еще темы с ответами:

Даны три вещественных числа, вывести на экран те из них, которые не принадлежат заданному диапазону - C++
Даны три вещественных числа, вывести на экран те из них, которые не принадлежат диапазону (-3,8; 1,8). #include &quot;stdafx.h&quot; #include...

Даны 3 числа . Определить среди них наибольшее и наименьшее - C++
Даны 3 числа . Определить среди них наибольшее и наименьшее .

Даны три числа a,b,c. Определить какое из них равно d - C++
Не могу понять как можно это написать на C++ Даны три числа a,b,c. Определить какое из них равно d. Если ни одно не равно d то найти...

Даны вещественные числа b1,b2,..b9. Определить среднее арифметическое тех из них которые больше 10 - C++
Даны вещественные числа b1,b2,..b9. Определить среднее арифметическое тех из них которые больше 10 Кто представляет как это сделать,...


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

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

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