
- •Лабораторная работа №3
- •Функция gets()
- •Функция getchar()
- •«Для продолжения нажмите Enter»
- •Оператор получения адреса &
- •Функция scanf()
- •Входной поток
- •Использование функции scanf()
- •Выбор соответствующих средств ввода данных
- •Будьте осторожны при использовании scanf()
- •Неинициализированные переменные
- •Используемые алгоритмы ввода
Используемые алгоритмы ввода
Алгоритмом называют способ выполнения определенной задачи. Изучая программирование, вы в то же время учитесь разрабатывать алгоритмы, то есть определять, каким именно образом решить ту или иную задачу, используя язык Си. Может показаться, что существует бесчисленное множество способов решения, столько же, сколько и задач, но на самом деле есть основной набор алгоритмов, которые используются в 90 процентах случаев. Изучив наиболее часто используемые алгоритмы, вы сможете легко проектировать программы, основываясь на уже известных вам методах.
Один из таких алгоритмов используется для изменения значения переменной. Речь идет о присваивании нового значения переменной, которая уже инициализирована. Если использовать просто функцию ввода и имя переменной в качестве параметра, исходное значение при вводе нового будет потеряно. А что делать, если вы не хотите, чтобы оно пропало? Например, вам нужно сравнить старое и новое значения. Один из возможных способов — это ввести дополнительную переменную для сохранения прежнего значения:
cache = amount;
Здесь значение переменной amount передается в переменную cache, и до тех пор, пока в amount не записана новая информация, обе переменные имеют одну и ту же величину. Переменная cache обеспечивает хранение значения в памяти, пока в нем не возникнет необходимость. Когда оно вам потребуется, используйте переменную, которая служила для хранения.
В программе, приведенной в Листинге 2, показан пример присваивания переменной нового значения (в следующих главах вы увидите различные варианты практического применения этой процедуры).
Листинг 2. Программа присваивания переменной нового значения с сохранением старого.
/*storage.c*/
main()
{
int number, storage;
puts("Введите значение переменной");
scanf("%d", &number);
storage = number;
puts("Введите значение переменной");
scanf("%d", &number);
printf("Исходноезначение: %d\n", storage);
printf("Новое значение: %d", number);
}
Рис.12.
Присваивание переменной нового значения
Ввод значения переменной number обеспечивается следующими инструкциями:
puts("Введите значение переменной");
scanf("%d", &number);
Сохранение значения переменной number в переменной storage выполняет инструкция:
storage = number;
Для ввода второго значения переменной number используются точно такие же инструкции, как и в первом случае. Оба значения, старое и новое, позже могут быть отражены на экране. Прежнее содержимое переменной не было утеряно просто потому, что было сохранено в другой области памяти, как показано на рис.12.
|
Вопросы |
|
|
Упражнения |
main() { char initial; initial = gets(); puts(initial); } |