Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Grif1992
0 / 0 / 1
Регистрация: 06.10.2011
Сообщений: 50
1

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

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

Даны натуральные n, действительные числа a1..an. Получить max(|a1|,..,|an|)
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2011, 17:05
Ответы с готовыми решениями:

В последовательности случайных чисел найти минимальное и максимальное число в каждой последовательности(без массивов)
Очень нужна помощь! В последовательности случайных чисел найти минимальное и максимальное число...

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

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

Найти количество разных чисел во введенной последовательности (без использования массива)
Пользователь вводит произвольное количество чисел на клавиатуре (они не убывают),найти количество...

Поиска среди элементов последовательности трех таких чисел, произведение которых максимально (без использования массива)
Дана последовательность из N натуральных чисел, оканчивающаяся 0. Составить программу поиска среди...

14
alkagolik
Заблокирован
12.10.2011, 17:07 2
Grif1992,
границы отрезка n в студию
0
Grif1992
0 / 0 / 1
Регистрация: 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
12.10.2011, 17:20
-=ЮрА=-
Заблокирован
Автор 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
Эксперт С++
4239 / 2213 / 203
Регистрация: 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
Эксперт С++
5797 / 3446 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
12.10.2011, 17:38 11
Thinker, только там сравниваются абсолютные значения
0
Thinker
Эксперт С++
4239 / 2213 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
12.10.2011, 17:39 12
Цитата Сообщение от Nameless One Посмотреть сообщение
Thinker, только там сравниваются абсолютные значения

Не по теме:

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

0
Nameless One
Эксперт С++
5797 / 3446 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
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 / 1
Регистрация: 06.10.2011
Сообщений: 50
12.10.2011, 17:47  [ТС] 15
Спасибо!
0
12.10.2011, 17:47
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2011, 17:47

Найти максимальное число по модулю. Сравнить производительность без потоков, с потоками, и задачей
Собственно говоря дали задание написать тремя способами поиск максимального числа. А именно без...

Дано линейный массив действительных чисел. Подсчитать, сколько в массиве встречается максимальное число
Дано линейный массив действительных чисел. Подсчитать, сколько в массиве встречается максимальное...

Переворот последовательности без использования массива
программа получает на вход последовательность заканчивающуюся 0, вывести последовательность в...


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

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

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