0 / 0 / 0
Регистрация: 26.09.2011
Сообщений: 12
|
|
1 | |
Считывание чисел через пробел в массив через scanf26.09.2011, 01:05. Показов 57200. Ответов 29
Метки нет Все метки)
(
Здравствуйте!
Очень вероятно что вопрос поднимался миллионы раз, но я ответы не нашел спустя часы поиска ![]() В общем задача следующая. На стандартном потоке ввода задается последовательность целых чисел, по модулю не превосходящих 2*10^9. Последовательность состоит не менее чем из двух элементов. Сколько всего чисел будет в последовательности - неизвестно. Насколько я понимаю нужно записать каждый элемент в массив, но когда я использую просто scanf в переменную, а потом printf для этой же переменной - то выдается только первое число. Последовательность целых чисел задается через пробел. Какой то код выкладывать сюда думаю бессмысленно, потому что там только scanf и printf. Спасибо!
0
|
|
26.09.2011, 01:05 | |
Ответы с готовыми решениями:
29
Из чисел в TEdit, записанных через пробел, заполнить массив Ввод данных через scanf без перехода на новую строку, используя пробел |
0 / 0 / 0
Регистрация: 26.09.2011
Сообщений: 12
|
|||||||||||
26.09.2011, 01:59 [ТС] | 3 | ||||||||||
А если задаю переменную таким образом:
В общем никак не могу понять как мне добиться массива чисел. Числа пользователь вводит сразу через пробел, энтер нажимает только в конце ввода всех чисел.
0
|
Заблокирован
|
||||||
26.09.2011, 02:00 | 4 | |||||
а поместить scanf в цикл не? можно и пробелами разделять, но без ентера, это отдельная история. есть на форуме тема
0
|
0 / 0 / 0
Регистрация: 26.09.2011
Сообщений: 12
|
||||||
26.09.2011, 02:08 [ТС] | 5 | |||||
С удовольствием
![]() Кстати сейчас попробовал запустить так, как вы написали. и у меня на убунту по крайней мере работает и с заданием через пробел. Но вопрос такой - как создать динамический массив и заполнить его до тех пор, пока есть числа? Тут можно написать что нибудь типа
И пока условие выполняется - заполнять массив?
0
|
Заблокирован
|
||||||
26.09.2011, 02:19 | 6 | |||||
swrko, с заданием через пробел работает, но ентер все равно нажимать придется, потому что числа вводить можно до бесконечности. Не совсем понял что значит пока есть числа... можно это реализовать как линейный односвязный список.
0
|
593 / 531 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
||||||
26.09.2011, 02:22 | 7 | |||||
можно и так.
и со статическим так тоже можно.
0
|
Каратель
![]() |
||||||
26.09.2011, 02:24 | 9 | |||||
2
|
0 / 0 / 0
Регистрация: 26.09.2011
Сообщений: 12
|
||||||
26.09.2011, 02:31 [ТС] | 10 | |||||
alkagolik,
на счет энтера - его просто нужно будет нажимать один раз - когда введут все числа, а не после каждого введенного числа. т.е. сейчас ввод работает как нужно. Пока есть числа - я имел в виду создать массив из стольких элементов - сколько чисел введет пользователь. Сейчас у нас конкретно указанный массив m[3]. Но он переполнится если чисел будет например 10. Точнее цикл просто не дойдет до 10го элемента. С объяснением всегда проблемы были, так понятнее вроде? ![]() Добавлено через 6 минут Это дело возвращает
![]() Но программа как я понял зависает. потому что ничего просто не выполняется. После нажатия на энтер так же стоит курсор в консоли и можно продолжать ввод чисел. Но ничего не происходит.
0
|
Каратель
![]() |
||||||
26.09.2011, 02:35 | 11 | |||||
это предупрежение, а не ошибка, 12-ю строку можно переписать так
вам же написали что
0
|
0 / 0 / 0
Регистрация: 26.09.2011
Сообщений: 12
|
|
26.09.2011, 02:36 [ТС] | 13 |
Jupiter, да, я обратил внимание, все равно запускал программу с тем кодом, но проблема такая же. После ввода чисел и нажатия на энтер ничего не происходит.
0
|
593 / 531 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
26.09.2011, 02:39 | 15 |
Jupiter, по-мойму правильно писать m = (int*)realloc(m, (i + 10) * sizeof(int));
1
|
0 / 0 / 0
Регистрация: 26.09.2011
Сообщений: 12
|
|
26.09.2011, 02:44 [ТС] | 16 |
Тоже пробовал. Все равно ничего не выводит. Сейчас погуглим как gcc обновить еще
![]() Добавлено через 4 минуты На счет gcc кстати.
0
|
Заблокирован
|
|
26.09.2011, 02:50 | 17 |
в принципе нет, ты же не девелопер супер пупер, я тоже. ну как бэ код юпитера я проверил, запустил, оборвал с помощью ctrl+d... не знаю, товарищ, чем тебе помочь. у тебя в бубунтовых репах свежее должны быть версии. а репы gcc svn-новские. это отдельная история
0
|
593 / 531 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
||||||
26.09.2011, 02:53 | 18 | |||||
alkagolik, например так
![]() Добавлено через 47 секунд ну вместо старого keybd event майкрософт советует мессаджи использовать правда. но это не так важно.
1
|
0 / 0 / 0
Регистрация: 26.09.2011
Сообщений: 12
|
|
26.09.2011, 02:55 [ТС] | 19 |
Программа срабатывает, если в конце чисел дописать \0 и нажать энтер.
Странно почему без этого не работает.
0
|
Заблокирован
|
|
26.09.2011, 03:01 | 20 |
OstapBender, keyb_event ... иксы?
0
|
26.09.2011, 03:01 | |
Помогаю со студенческими работами здесь
20
Scanner. Дописать считывание из файла записей через пробел
Ввод чисел через пробел Ввод чисел через пробел Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |