К возможностям языка Си по выводу и форматированию текста мы ещё вернёмся, а пока, поскольку компьютеры изначально были созданы для вычислений,
не пора ли нам, друзья, замахнуться на Вильяма нашего Шекспира? напишем и мы осмысленную программу.
"Пусть пользу приносит!" ©
Итак,
вариант 1-й:
#include
int main ()
{
int a, b;
a=333;
b=777;
printf ("%d\n", a + b);
return 0;
}
В итоге на консоль выводится итог - в нашем случае число 1110
Что у нас новенького?
Во-первых, вводятся две переменные a и b - это очевидно: слагаемые.
Кстати, названия переменных вовсе не обязательно должны состоять из одной буквы, в больших программах удобнее давать осмысленные имена, например; slagaemoe1, slagaemoe_2, summa.
Имена переменных и констант могут состоять из латинских букв, цифр и знаков подчёркивания, другие символы(включая пробелы) недопустимы. Прописные (большие) и строчные (маленькие) буквы различаются, таким образом summa, SUMMA и Summa - разные имена.
Обязательные условия: имена должны начинаться с буквы, нельзя в этом качестве использовать ключевые слова. Остальные правила носят рекомендательный характер: например, принято использовать строчные буквы для имен переменных, а прописные - для символических констант.
Во-вторых - и это принципиальный момент! - мы впервые встречаемся с операцией присваивания.
Знак "=" - не знак равенства, как в математике, а оператор присваивания.
Разница колоссальная: в математике запись "a=a+1" является абсурдом, а в программировании - очень даже осмысленная и нужная вещь: она означает "увеличить значение переменной на единицу и присвоить новое значение той же переменной".
В-третьих, в записи "%d\n", a + b" , кроме понятной операции сложения мы сталкиваемся со странной конструкцией: "%d".
Знак процента предваряет описание формата, в данном случае имеется в виду целое десятичное число (decimal integer).
А вся строка
printf ("%d\n", a + b);
означает: "вывести на печать(консоль) в виде целого десятичного числа суммы чисел a и b".
Но каждый раз переписывать программу для вычисления суммы других чисел неудобно, поэтому изменим программу.
вариант 2-й:
#include
int main ()
{
int a, b;
printf ("Введите два числа: \n");
scanf ("%d%d", &a, &b);
printf ("%d\n", a + b);
return 0;
}
Здесь появляется функция scanf, также, как и printf, входящая в стандартную библиотеку stdio, но, в отличие от printf, выводящей данные на печать, scanf считывает данные с клавиатуры(вернее, с соответствующего ей файла).
"%d%d" означает формат двух вводимых подряд чисел, "&a, &b" - какие именно числа вводятся.
Работает программа следующим образом: после вывода на дисплей строки "Введите два числа:" вводите первое число, после него нажимаете Tab или Enter, вводите второе число и Enter.
Результат выводится на консоль.
Ещё усовершенствуем программу - пусть она станет ещё интерактивнее, и комментирует каждое число, а не просто выводит итог, как предыдущая.
вариант 3-й:
#include
void main ()
{
int a, b;
printf ("Введите два числа: \n");
scanf ("%d%d", &a, &b);
printf ("Первое слагаемое=%d\n", a);
printf ("Второе слагаемое=%d\n", b);
printf ("Сумма=%d\n", a + b);
}
P.S. Отдельная благодарность
a_nalitik, подсказавшему, как обойтись без "return 0;".
Проверил в третьем варианте - работает )))
Перепост из:
http://rex-lockheart.dreamwidth.org/337115.html