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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
Grif1992
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 50
#1

Вычислить максимальное по модулю число из последовательности действительных чисел, без использования массива - C++

12.10.2011, 17:05. Просмотров 1467. Ответов 14
Метки нет (Все метки)

Даны натуральные n, действительные числа a1..an. Получить max(|a1|,..,|an|)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2011, 17:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычислить максимальное по модулю число из последовательности действительных чисел, без использования массива (C++):

Найти максимальный по модулю член последовательности без использования массивов - C++
Дано натуральное число n, действительные числа a1, ..., an. Определить максимальный по модулю член последовательности. Составить...

Вычислить минимальное и максимальное число в последовательности целых чисел, вводимых с клавиатуры - C++
Написать программу, которая вычисляет минимальное и максимальное число последовательности целых чисел вводимых с клавиатуры.

Обработка последовательности без использования массива (использовать (do while) - C++
Дан набор ненулевых целых чисел; признак его завершения — число 0. Вывести сумму всех положительных четных чисел из данного набора. Если...

Вычисление числа из последовательности Фибоначчи без использования массива - C++
Последовательность Фибоначчи определяется так: a(0) = 1 ; a(1) = 1; a (k) = a(k-1) + a(k-2). Дано k, вычислить a(k). Не использовать...

Найти в введенной последовательности чисел максимальное число. - C++
вводятся числа , пока не будет введено нечетное число. Найти максимальное из них. Через циклы

В последовательности натуральных чисел определить максимальное число, оканчивающееся на 5 - C++
Здравствуйте! Совсем недавно начал изучать C++, 2 недели. И мне еще не все понятно в языке. т.к. скоро сдаю ОГЭ по информатике я...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alkagolik
Заблокирован
12.10.2011, 17:07 #2
Grif1992,
границы отрезка n в студию
0
Grif1992
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 50
12.10.2011, 17:11  [ТС] #3
Просто сказано что любые натуральные n, ну т.е число элементов..
0
alkagolik
Заблокирован
12.10.2011, 17:20 #4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int max_min(int min, int max){
    return (min < max) ? max : min;
}
 
int main(){
    int n = 100, x, max = 0;
    srand(time(0));
 
    while (n--)
    {
        x = rand() % 1000 + 1;
        printf("%d ", x);
        max = max_min(max, x);
    }
    printf("\nмаксимальное число: %d\n", max);
    return 0;
}
1
-=ЮрА=-
Заблокирован
Автор FAQ
12.10.2011, 17:24 #5
alkagolik, а если массив будет содержать отрицательные элементы, не смутило это
Цитата Сообщение от alkagolik Посмотреть сообщение
max = 0;
???
0
alkagolik
Заблокирован
12.10.2011, 17:27 #6
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
а если массив будет содержать отрицательные элементы, не смутило это
не будет
C
1
x = rand() % 1000 + 1;
Добавлено через 1 минуту
кстати я не учел это
действительные числа a1..an.
0
-=ЮрА=-
Заблокирован
Автор FAQ
12.10.2011, 17:31 #7
alkagolik, да я не говорю о rand() % 1000, ввод может быть и с клавиатуры, и тогда алгоритм даст неверный результат если элементы будут отрицательными...
0
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
12.10.2011, 17:36 #8
Как вариант при n>0:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<stdio.h>
#include<conio.h>
#include<math.h>
int main()
{
    double x, max;
    scanf("%lf", &x);
    max = fabs(x);
    while (scanf("%lf", &x) == 1)
       if (fabs(x) > max)
          max = fabs(x);
    printf("%f\n", max);
    getch();
    return 0;
}
0
-=ЮрА=-
Заблокирован
Автор FAQ
12.10.2011, 17:37 #9
Grif1992, вам полуфабрикат предложили. Ниже код хоть и не очень элегантный зато отрабатывать будет для любых значений!
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int max_min(int min, int max){
    return (min < max) ? max : min;
}
 
int main(){
    printf("enter num elements : ");
    int i = 1, n;scanf("%d",&n);
    int x, max;
    printf("Enter %d element : ",i);
    scanf("%d",&x);
    max = x;//ТАК ПРАВЕЛЬНО БУДЕТ!
    
 
    while ((i++) < n)
    {
        printf("Enter %d element : ",i);
        scanf("%d",&x);
        max = max_min(max, x);
    }
    printf("max num: %d\n", max);
    return 0;
}
Как видите разница была всего в одну строку
max = x;//ТАК ПРАВЕЛЬНО БУДЕТ!
НО ЭТО ОЧЕНЬ СУЩЕСТВЕННО!
0
Миниатюры
Вычислить максимальное по модулю число из последовательности действительных чисел, без использования массива  
alkagolik
Заблокирован
12.10.2011, 17:37 #10
я не давал ТС решения задачи. я показал принцип ее решения. пляшем из того что числа float, это уже совсем иная картина
0
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
12.10.2011, 17:38 #11
Thinker, только там сравниваются абсолютные значения
0
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
12.10.2011, 17:39 #12
Цитата Сообщение от Nameless One Посмотреть сообщение
Thinker, только там сравниваются абсолютные значения

Не по теме:

Да, я сразу же исправил

0
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
12.10.2011, 17:41 #13
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
вам полуфабрикат предложили
у тебя тоже не готовый продукт:
Цитата Сообщение от Grif1992 Посмотреть сообщение
действительные числа a1..an. Получить max(|a1|,..,|an|)
действительные числа, а не целые. Сравниваются модули чисел, а не сами числа
0
-=ЮрА=-
Заблокирован
Автор FAQ
12.10.2011, 17:44 #14
Цитата Сообщение от Nameless One Посмотреть сообщение
действительные числа, а не целые. Сравниваются модули чисел, а не сами числа
с учётом этого
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <math.h>
 
int main(){
    printf("enter num elements : ");
    int i = 1, n;scanf("%d",&n);
    float x, max;
    printf("Enter %d element : ",i);
    scanf("%f",&x);
    max = fabs(x);
    
 
    while ((i++) < n)
    {
        printf("Enter %d element : ",i);
        scanf("%f",&x);
        if(max <  fabs(x))
            max = fabs(x);
    }
    printf("max absolute val : %f\n", max);
    return 0;
}
1
Grif1992
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 50
12.10.2011, 17:47  [ТС] #15
Спасибо!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2011, 17:47
Привет! Вот еще темы с ответами:

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

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

Найти максимальное число среди чисел последовательности, введенных после последнего отрицательного - C++
В числовую переменную последовательно вводятся вещественные числа, количество которых заранее не известно. Найти максимальное число среди...

Найти сумму и произведение N чисел без использования массива - C++
Дано целое число N и набор из N вещественных чисел. Вывести сумму и произведение чисел из данного набора. Массив не использовать. ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.10.2011, 17:47
Ответ Создать тему
Опции темы

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