0 / 0 / 0
Регистрация: 10.01.2018
Сообщений: 105
|
||||||
1 | ||||||
Как реализовать условие: Числа должны вводиться, пока не будет введен 0?25.01.2018, 20:45. Показов 2873. Ответов 14
Метки нет (Все метки)
Здравствуйте, пробую сделать программу, которая управляет массивами.
Программа должна предлагать меню (1) Ввести числа ( Числа должны вводиться, пока не будет введен 0, 0 в памяти сохраняться не должен) (2) Вычислить абсолютное значение (3) Наибольшее число (4) Сортировка (5) Реверс (Числа должны выводиться в обратном порядке только с абсолютными значениями, абсолютные значения должны копироваться в другой массив) (6) Конец программы Проблемы такие: Как реализовать условие в первом пункте насчет нуля? И в 5 насчет реверса и копирования, мне кажется, что я абсолют не совсем верно задал. Правильно ли задано обращение к функциям в case? Заранее спасибо за любые комментарии
0
|
25.01.2018, 20:45 | |
Ответы с готовыми решениями:
14
Вводить различные числа, пока не будет введен 0 Подпрограмма: Вводить числа до тех пор пока не будет введен 0, после ввода 0, вывести все введенные числа Складывать числа, введенные с клавиатуры, пока не будет введен 0 Выводить числа в файл до тех пор, пока не будет введен 0 |
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
|
||||||
26.01.2018, 12:01 | 2 | |||||
RednexRampage,
0
|
0 / 0 / 0
Регистрация: 10.01.2018
Сообщений: 105
|
|
29.01.2018, 19:43 [ТС] | 3 |
Спасибо) Сейчас гляну)
0
|
0 / 0 / 0
Регистрация: 10.01.2018
Сообщений: 105
|
||||||
31.01.2018, 16:18 [ТС] | 4 | |||||
Привет)
Вот на
не совсем еще понял, как реализовать реверс, причем, как говорил, числа должны выводиться в обратном порядке только с абсолютными значениями, абсолютные значения должны копироваться в другой массив. На этом запутался несколько. Может кто помочь?
0
|
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
|
|||||||||||
31.01.2018, 16:55 | 5 | ||||||||||
Сообщение было отмечено RednexRampage как решение
Решение
RednexRampage, так вы используете функции без аргументов
1
|
0 / 0 / 0
Регистрация: 10.01.2018
Сообщений: 105
|
|||||||||||
31.01.2018, 19:17 [ТС] | 6 | ||||||||||
Я как раз эту книгу читаю) Я когда туда эти аргументы ставлю, он точно так же ругается.
Добавлено через 6 минут Я как раз эту книгу читаю) Я когда туда эти аргументы ставлю, он точно так же ругается.
Line 18 warning: implicit declaration of function 'strmp' Undiefined reference to 'strmp' А как ее иначе декларировать лучше? Добавлено через 6 минут Не туда) Вот эта программа: Что я упускаю еще?
0
|
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
|
|||||||||||||||||||||
31.01.2018, 19:57 | 7 | ||||||||||||||||||||
RednexRampage, что вы сюда подставляете?
Добавлено через 1 минуту или объявить так
0
|
2306 / 1132 / 702
Регистрация: 25.04.2016
Сообщений: 3,229
|
||||||
31.01.2018, 20:34 | 8 | |||||
Да много чего, например:
попытка распечатать float, при том, что число int что такое void int???? Вы с ходу взялись за динамический массив, т.е. условие "Числа должны вводиться, пока не будет введен 0",- предполагает, что размер массива заранее не известен и будет определяться по ходу работы программы, а значит размер массива может быть и 80, и 800 000, второе вызовет переполнение стека, однако у вас по этому поводу в коде тишь да гладь. Далее, функционал программы составлен... скажем так, плохо. Что если пользователь не захочет вводить элементы массива и захочет их сразу же отсортировать? Каким образом вы собираетесь определять есть что-то в массиве или нет? Ну и так далее. Рекомендую для начала придумать себе что-нибудь попроще, например, без меню, т.е. просто разбейте свою программу на функции, которые будут поочередно заполнять массив значениями, сортировать, искать минимум-максимум и прочее. А то вы с ходу схватились за то, о чем еще даже примерного представления не имеете. И да, условие "вводить, пока не поступил 0"... вам пока рановато, лучше просто задайте массив на 5 или там 7 элементов и развлекайтесь с передачей массива в функции. Добавлено через 24 минуты Т.е. что-то вроде вот такого:
0
|
0 / 0 / 0
Регистрация: 10.01.2018
Сообщений: 105
|
|
31.01.2018, 20:54 [ТС] | 9 |
Спасибо за подсказки)
С main была тупо ошибка при редакции. Понимаю, что в чем-то рановато, но мне с этой программой разобраться надо и чтобы нормально все работало и отрабатывать ошибки( Все не пойму, как там реверс сделать.
0
|
2306 / 1132 / 702
Регистрация: 25.04.2016
Сообщений: 3,229
|
|||||||||||
31.01.2018, 21:15 | 10 | ||||||||||
По сути:
1. взять последний элемент массива (arr[n-1]) и поменять его местами с первым (arr[0]) 2. взять предпоследний элемент массива (arr[n-2]) и поменять его местами с первым (arr[1]) 3. взять ... и так до победного например:
или менять элементы через привычный tmp:
1
|
0 / 0 / 0
Регистрация: 10.01.2018
Сообщений: 105
|
|
31.01.2018, 22:04 [ТС] | 11 |
Теперь понял) спасибо) Все-таки попробую это как-то в ту задачу вкрутить, я принцип-то понимаю, просто проблема в том, что хотя я понимаю, как это нужно сделать, пока не умею это правильно в коде выразить.
Добавлено через 23 минуты И все-таки как это с меню реализовать? Проблему в том, что динамический массив, понимаю. Например, если предположить, что числа-таки есть и пользователь уже после ввода сортирует, то как сделать вот реализацию с нулем и программу в целом. Просто мучаюсь и никак не получается, а неймется(.
0
|
2306 / 1132 / 702
Регистрация: 25.04.2016
Сообщений: 3,229
|
|
31.01.2018, 22:11 | 12 |
пока выполняется некий цикл {
1. получаем число с клавиатуры 2. если это число не 0: - - рассчитываем размер массива - - объявляем массив заданного размера (или меняем размер уже имеющегося) - - записываем число в массив иначе выходим из цикла } если размер массива > 0 возвращаем новый размер массива, иначе сообщаем об ошибке alloc(), realloc(), free() и sizeof() вам в помощь
1
|
0 / 0 / 0
Регистрация: 10.01.2018
Сообщений: 105
|
||||||||||||||||
01.02.2018, 00:33 [ТС] | 13 | |||||||||||||||
В общем, я все заново переписать попробовал и в этом случае попробовал, как будет если сделать как проект и разделить на 3 файла
1. Основной 2. С функциями 3. header Очень прошу глянуть Main и пофиксить, почему у меня ругается на скобку, ну и программу проверить, если не сложно, в этот раз вроде лучше было, без меню нормально вывод работал, вот с меню глючит ругается на скобку в меню.
Функции
0
|
2306 / 1132 / 702
Регистрация: 25.04.2016
Сообщений: 3,229
|
|||||||||||
01.02.2018, 04:47 | 14 | ||||||||||
В main:
int quantity = 0; и после этого выполняется условие if (quantity>0) т.е. все, что в условии, никогда не будет выполнено Немного изменил main, чтобы программа заработала, попробуйте:
Но даже сейчас программа будет работать неизвестно как, если пользователь решит бежать впереди паровоза, и скажем решит отсортировать массив до того, как введет значения. Поэтому я бы изменил идею меню на что-нибудь вроде этого:
0
|
0 / 0 / 0
Регистрация: 10.01.2018
Сообщений: 105
|
|
01.02.2018, 12:56 [ТС] | 15 |
Огромное спасибо) Теперь работает)
У меня только вопрос, все вроде правильно, но в average выдает нули, и bubblesort у меня не печатается, хотя без меню прекрасно сортировал. Добавлено через 1 час 30 минут Ой, с пузырьком ступил, тупо вывод не заметил, что не написал, а вот Average что-то глбчит(
0
|
01.02.2018, 12:56 | |
01.02.2018, 12:56 | |
Помогаю со студенческими работами здесь
15
Последовательно вводятся числа a (до тех пор, пока не будет введен 0) С клавиатуры вводятся числа пока не будет введен 0 определить количество четных и нечетных Пользователь вводит целые числа до тех пор, пока не будет введен ноль... Вводите числа с клавиатуры, пока не будет введен ноль. Посчитать количество и сумму чисел Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |