while i =6 do begin
Чему будет равно значение переменной «a» после выполнения этого цикла?
i:=3;
while l Попроси больше объяснений
22.11.2017
Что ты хочешь узнать?
Ответ
- Комментарии
- Отметить нарушение
Ответ
Сколько раз будет выполнен этот цикл?
3 раза
Какое число нужно написать вместо многоточия, чтобы цикл выполнился ровно 2 раза?
Число 3
Чему будет равно значение переменной «a» после выполнения этого цикла?
a = 12
Сколько строк напечатает программа?
5*8 = 40
while i =6 do begin
6)Чему будет равно значение переменной «a» после выполнения этого цикла?
i:=3;
while l Оцени ответ
Если тебя не устраивает ответ или его нет, то попробуй воспользоваться поиском на сайте и найти похожие ответы по предмету Информатика.
4 KAI10 [2014-01-29 20:05:00]
Я пишу этот код, который принимает целое число (t) в качестве ввода от пользователя. Цикл будет исполнен всего лишь "t" раз. Но я нахожу, что он работает в течение (t-1) раз. Например, если я даю вход 3 , он запускает только 2 раз. Может кто-нибудь объяснить, почему это происходит?
Я попробовал и использовал scanf("%s", &str) , он работает, но тогда я не могу взять строку как входную, содержащую пробелы.
3 ответа
scanf("%d", &t) потребляет только число во входном потоке и оставляет остальные символы. Когда вы вводите цифру и нажимаете клавишу ввода, после цифры появляется символ новой строки.
Первый gets читает эту новую строку и возвращает пустую строку, за исключением новой строки. Первая итерация цикла печатает эту пустую строку.
1 haccks [2014-01-29 20:08:00]
Цикл повторяется 3 раза, как и следовало бы. Но кажется, что он выполняет итерацию 2 раза только из-за того, что символ
, оставшийся позади gets в буфере, читается на второй итерации.
Для первой итерации, когда вы вводите строку и нажимаете Enter , символ
переходит в буфер со строкой. gets прекратить чтение, когда встречается , оставляя
в буфере. На следующей итерации этот
(непечатаемый символ) читается gets , а затем печатается на терминал.
ПРИМЕЧАНИЕ. Никогда не используйте функцию gets . Это больше не является частью стандарта C. Вместо этого используйте fgets .
Я думаю, вы также можете использовать функцию scanf , чтобы решить вашу проблему, что строка не принимает ничего после SPACE . Кроме того, цикл работает (t-1) раз, потому что буфер не очищается из-за использования gets() . Чтобы решить эту проблему, вы можете использовать функцию getch() для очистки буфера. Следующий код должен работать, я думаю,
В этом коде getch() очистит буфер, приняв бесполезное значение. Кроме того, что касается scanf() , ^ внутри scanf сообщает функции, что ему нужно взять ввод до тех пор, пока символ после ^ не встретится, который в этом случае является escape-последовательностью NEW LINE . Я попытался использовать некоторые небольшие слова, а не новую строку, и она тоже работала. Надеюсь, это очистит вашу проблему:)