Variables, types, and arithmetic · Переменные, типы и арифметика
Every value has a type
- In C, every variable has a type that says what kind of value it holds.
- The three you use most:
int(a whole number),double(a number with a decimal point), andchar(a single character). - You must give the type when you create the variable:
int n = 5;ordouble pi = 3.14;.
У каждого значения есть тип
- В C у каждой переменной есть тип, указывающий на вид хранимого значения.
- Три наиболее используемых вами типа:
int(целое число),double(число с десятичной точкой) иchar(один символ). - Вы должны указать тип при создании переменной:
int n = 5;илиdouble pi = 3.14;.
Doing arithmetic
- C does math with
+,-,*, and/, just like a calculator. *and/happen before+and-. Use brackets( )to change the order.- The
%operator gives the remainder of a division:17 % 5is2.
Арифметические операции
- C выполняет математику с помощью
+,-,*и/, как обычный калькулятор. - ⟨
*⟩ и ⟨/⟩ выполняются до ⟨+⟩ и ⟨-⟩. Используйте скобки ⟨( )⟩ для изменения порядка выполнения. - Оператор
%дает остаток от деления:17 % 5равно2.
Integers divide differently
- When you divide two
ints, C throws away the fraction:7 / 2is3, not3.5. - To keep the fraction, at least one side must be a
double.7 / 2.0is3.5. - You can cast an
intto adoublewith(double):(double)sum / count.
Деление целых чисел работает иначе
- При делении двух ⟨
int⟩ C отбрасывает дробную часть: ⟨7 / 2⟩ равно ⟨3⟩, а не ⟨3.5⟩. - Чтобы сохранить дробь, хотя бы одна сторона должна быть
double.7 / 2.0равно3.5. - Вы можете привести
intк типуdoubleс помощью(double):(double)sum / count.
Reading input
scanfreads typed input into a variable.scanf("%d", &n);reads oneintinton.- Note the
&beforen:scanfneeds the address of the variable so it can fill it in. - In this playground, Run first asks you for the input, one value per line; Check answer feeds the example input for you.
Чтение ввода
scanfсчитывает введенные данные в переменную.scanf("%d", &n);считывает одинintвn.- Обратите внимание на
&передn:scanfтребует адрес переменной, чтобы заполнить её значением. - В этой среде выполнения кнопка Run (Выполнить) сначала запрашивает ввод по одному значению на строке; кнопка Check answer (Проверить ответ) подставляет пример данных за вас.
#include <stdio.h>
int main(void) {
int a = 7, b = 2;
printf("%d\n", a / b); // 3 (integer division)
printf("%.1f\n", a / 2.0); // 3.5 (one side is a double)
printf("%d\n", a % b); // 1 (remainder)
return 0;
}
Common mistakes
- Declare a variable with its type:
int n;. - Integer division truncates:
7 / 2is3, not3.5.
Распространенные ошибки
- Объявите переменную с её типом:
int n;. - Целочисленное деление отбрасывает дробную часть:
7 / 2равно3, а не3.5.
Now you try
- Use
/and%for whole-number math, and adouble(or a cast) when you need a fraction. - For the function tasks, do not write a
main— the checker provides one. - Press Run to compile and run, then Check answer.
Теперь попробуйте сами
- Используйте
/и%для вычислений с целыми числами, а такжеdouble(или приведение типов), если нужна дробная часть. - Для заданий с функциями не пишите
main— проверяющая система предоставит его. - Нажмите Run (Выполнить), чтобы скомпилировать и запустить, затем Check answer (Проверить ответ).
Variables hold a value · Переменная хранит значение
A variable is a named box of a fixed type; assigning replaces it. · Переменная — это именованная коробка фиксированного типа; присваивание заменяет содержимое.
Read one integer n with scanf. A box holds 6 items. Print two lines exactly: Full boxes: then the value of n / 6, and Left over: then the value of n % 6. · Прочитайте одно целое число n с помощью scanf. Коробка вмещает 6 элементов. Выведите ровно две строки: Full boxes: затем значение n / 6, и Left over: затем значение n % 6.
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.
Complete double average3(int a, int b, int c) so it returns the average of the three as a double. Watch out for integer division — divide by 3.0, not 3. Do not write a main. · Завершите double average3(int a, int b, int c) так, чтобы она возвращала среднее арифметическое трех чисел как double. Остерегайтесь целочисленного деления — делите на 3.0, а не на 3. Не пишите main.
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.
Write double hyp(double a, double b) that returns the hypotenuse length: the square root of a*a + b*b. Use sqrt from <math.h>. Do not write a main. · Напишите double hyp(double a, double b), которая возвращает длину гипотенузы: квадратный корень из a*a + b*b. Используйте sqrt из <math.h>. Не пишите main.
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.