Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
234 / 43 / 4
Регистрация: 05.01.2011
Сообщений: 197
1

Вычислить разность между максимальным и минимальным по модулю элементами этого массива

06.01.2011, 17:04. Показов 1793. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Условие задачи: Дан массив Х(178). Вычислить разность между максимальным и минимальным по модулю элементами этого массива. На Си. Помогите проверить правильность решения. Всё ли верно? Выдаёт ответ 175. Так как не сильно разбираюсь со значением rand, не уверена в верности.

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
#include "stdio.h"
#include "stdafx.h"
#include "stdlib.h"
 
 
int main ()
{
    
   int mas[178];
 
    for (int i=0; i<=178; i++)
    {
        mas[i]=(rand()%178)-1;
    }
        
    int min=mas[0], max=0;
 
    for (i=0; i<=178; i++)
    {
        if (min>mas[i]) min=mas[i];
        if (max<mas[i]) max=mas[i];
    }
 
    int rezult=max-min;
 
printf("Otvet:%d\n",rezult);
    
    
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.01.2011, 17:04
Ответы с готовыми решениями:

Вычислить произведение элементов массива, расположенных между максимальным и минимальным элементами
В одномерном массиве, состоящем из 10 целых элементов, вычислить произведение элементов массива,...

Вычислить сумму нечетных элементов массива, расположенных между максимальным и минимальным элементами
В одномерном массиве состоящем из 10 вещественных элементов,вычислить сумму нечетных элементов...

В одномерном массиве вычислить произведение элементов массива, расположенных между максимальным и минимальным элементами
Ребят помогите!) нужно решить одну задачку.. В одномерном массиве, состоящем из n ...

В массиве вычислить сумму нечетных элементов массива, расположенных между максимальным и минимальным элементами
1. В одномерном массиве, состоящем из 8 вещественных элементов, вычислить сумму нечетных элементов...

10
131 / 108 / 12
Регистрация: 04.12.2010
Сообщений: 313
06.01.2011, 17:24 2
C++
1
for (int i=0; i<=178; i++)
условие неверно, i<178.
C++
1
mas[i]=(rand()%178)-1;
- программа может некорректно сработать при rand()%178=0.
Просто mas[i]=rand()%178.

А так вроде правильно...

Добавлено через 4 минуты
И ещё, во втором цикле
C++
1
for (int i=0;
Добавлено через 3 минуты
А ответ всегда 175... Скорее всего, это принцип работы random
0
293 / 14 / 3
Регистрация: 21.12.2010
Сообщений: 293
06.01.2011, 17:27 3
Цитата Сообщение от Katerina Seliva Посмотреть сообщение
mas[i]=(rand()%178)-1;
здесь ты забиваешь массив случайными числами от 0 до 178. Они случайны, потому и результат должен быть разный при различном запуске программы...
А чтоб проверить себя выведи сначала значение min и max..перед выводом результата..


Цитата Сообщение от Katerina Seliva Посмотреть сообщение
Вычислить разность между максимальным и минимальным по модулю элементами этого массива.
по логике верно, но в проге о мудуле и речи нет
1
131 / 108 / 12
Регистрация: 04.12.2010
Сообщений: 313
06.01.2011, 17:30 4
Да, если уменьшить количество символов в массиве и поставить ввод элементов вручную - тогда можна убедьться, что программа написана правильно.

Добавлено через 57 секунд
Цитата Сообщение от pepsikat Посмотреть сообщение
по логике верно, но в проге о мудуле и речи нет
А рандом и не будет забивать массив оттрицательными числами в даном случае.
0
234 / 43 / 4
Регистрация: 05.01.2011
Сообщений: 197
06.01.2011, 17:34  [ТС] 5
А что нужно изменить, доделать, чтобы считало?
0
131 / 108 / 12
Регистрация: 04.12.2010
Сообщений: 313
06.01.2011, 17:39 6
да оно у вас правильно работает. просто такой принцип работы рандома.
1
222 / 135 / 19
Регистрация: 06.11.2010
Сообщений: 234
06.01.2011, 17:48 7
mas=(rand()%178) - Вернёт числа в диапазоне от 0 до 177 включительно. Если надо заполнить случайными числами, часть которых отрицательная, то можно поставить mas=rand()%201-100. Получится диапазон от -100 до 100 включительно (в условии задачи нет же точного условия, что числа должны быть 0...178).
На счёт того, что ответ всегда = 175. Он всегда будет одинаковым, потому что не задано начальное значение, с которого начнется генерация. Одно из решений будет подключение библиотеки time.h и строчка srand((unsigned)(time(NULL))) перед циклом заполнения массива.
1
234 / 43 / 4
Регистрация: 05.01.2011
Сообщений: 197
06.01.2011, 18:07  [ТС] 8
Алексaндр , pepsikat, а особенно x1Mike7x - спасибо большое за советы, вроде работает))
0
222 / 135 / 19
Регистрация: 06.11.2010
Сообщений: 234
06.01.2011, 18:57 9
Всегда пожалуйста
... и еще, в задании есть пункт, что должно быть по модулю.
то есть в цикле проверки должно быть:
C
1
2
3
4
5
6
7
8
9
....................................
#include "math.h"
....................................
for (i=0; i<178; i++)
{
    if (min>abs(mas[i])) min=abs(mas[i]);
    if (max<abs(mas[i])) max=abs(mas[i]);
}
....................................
1
234 / 43 / 4
Регистрация: 05.01.2011
Сообщений: 197
06.01.2011, 19:57  [ТС] 10
x1Mike7x, вот так?))
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
34
35
#include "stdio.h"
#include "stdafx.h"
#include "stdlib.h"
#include "time.h"
#include "math.h"
 
 
int main ()
{
    
   int mas[178];
   srand((unsigned)(time(NULL))); 
    for (int i=0; i<178; i++)
    {
        mas[i]=rand()%201-100; 
    }
        
    int min=mas[0], max=0;
    
 
    for (i=0; i<178; i++)
    {
    
        if (min>abs(mas[i])) min=abs(mas[i]);
        if (max<abs(mas[i])) max=abs(mas[i]);
 
    }
 
    int rezult=max-min;
 
printf("Otvet:%d\n",rezult);
    
    
    return 0;
}
0
131 / 108 / 12
Регистрация: 04.12.2010
Сообщений: 313
06.01.2011, 20:03 11
Katerina Seliva, так )
0
06.01.2011, 20:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.01.2011, 20:03
Помогаю со студенческими работами здесь

Вычислить разность между минимальным и максимальным из чисел
Только начала изучать язык С. Есть некоторые затруднения. Условие задачи: Дано 100 вещественных...

Вычислить разность между максимальным и минимальным из чисел
дано 100 вещественных чисел. Вычеслить разность между максимальным и минимальным из них. язык с

Вычислить разность между максимальным и минимальным числами в массиве
Заполнить массив из N ячеек случайными целыми числами от 0 до 24.Написать функцию вычисляющую...

Вычислить разность между максимальным и минимальным из 100 заданных значений
Дано 100 вещественных чисел. Вычислить разность меду максимальным и минимальным из них.


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru