C установка IDE C структура програми C змінні C типи даних С функція printf C константи C арифметичні операції C операції порівняння і логічні операції C порозрядні операції C операції присвоювання C перетворення типів C умовні конструкції C цикли С масиви і рядки С функція scanf C препроцесор. Директива #include C #define директива C макроси C умовна компіляція C функції. Визначення та опис функцій C функції. Передача параметрів в функцію C функції. Повернення результату з функції C функції. Рекурсивні функції C область видимості змінних C зовнішні об'єкти C вказівники C вказівник. Операції з вказівниками C покажчики. Арифметика покажчиків C покажчики. Константи і покажчики C покажчики. Покажчики та масиви C покажчики. Масиви покажчиків, рядки і багаторівнева адресація C покажчики. Покажчики в параметрах функції C покажчики. Динамічна пам'ять C покажчики. Покажчик як результат функції C покажчики. Управління динамічної пам'яттю C покажчики. Покажчики на функцію C покажчики. Покажчики на функції як параметри і результати функцій C покажчики. Функції зі змінною кількістю параметрів C struct. Визначення структур C struct. Структури як елементи структур C struct. Покажчики на структури C struct. Масиви структур C struct. Структури і функції C struct. union об'єднання C struct. Бітові поля С file. Введення-виведення і робота з файлами C file. Читання і запис бінарних файлів C file. Читання і запис структур в файл C file. Читання і запис текстових файлів C file. Форматування вводу-виводу C file. Позиціонування в потоці C file. Консольне введення-виведення

C арифметичні операції


Мова програмування Сі підтримує всі основні арифметичні операції. Ці операції проводяться над числами. Значення, які беруть участь в операції, називаються операндами. Список наявних в Сі операцій:

+     Операція додавання повертає суму двох чисел: 

#include <stdio.h>
 
int main(void)
{
    int a = 67;
    int b = 33;
    int c = a + b + 7;
    printf("a + b + 7 = %d \n", c);     // 107
    return 0;
}

 -    Операція віднімання повертає різницю двох чисел:  

#include <stdio.h>
 
int main(void)
{
    int a = 67;
    int b = 33;
    int c = a - b;
    printf("a - b = %d \n", c);     // 34
    return 0;
}

*     Операція множення:

int c = 15 * 3;     // 45

     Операція ділення двох чисел:

int a = 15 / 3;         // 5
float d = 34.0 / 3.0;   // 11.333333

При діленні варто бути уважним, тому що якщо в операції беруть участь два цілих числа, то результат ділення буде округлятися до цілого числа, навіть якщо результат присвоюється змінній float :

float a = 10 / 4;
printf("a = %f \n", a);     // 2.0

 Результат представляв дійсне число, один з операндів також повинен представляти дійсне число:

float a = 10.0 / 4;
printf("a = %f \n", a);     // 2.5

%     Повертає результат ділення двох чисел по модулю (отримання остачі від ділення):  

int a = 35 % 3;         // 2 (35 - 33 = 2)

Операції * , / , % мають більший пріоритет, ніж + і - :

int a = 8;
int b = 7;
int c = a + 5 * b;      // 43
printf("c = %d \n", c); // 43

/*
   5 * b = 35
   a + 35 = 43
*/

За допомогою дужок ми можемо перевизначити порядок операцій, щоб операції з більш низьким пріоритетом виконувалися до операцій з більш високим пріоритетом:

int a = 8;
int b = 7;
int c = (a + 5) * b;    // 91

/*
    а + 5 = 13
    13 * b = 91
*/

Також в Сі є спеціальні унарні операції над одним числом: ++ (інкремент) і -- (декремент). Кожна з операцій має два різновиди: префіксний і постфіксний.

 Префіксний інкремент ( ++x ). Збільшує значення змінної на одиницю і отримане значення використовується як значення виразу ++x

int a = 8;
int b = ++a;
printf("a = %d \n", a); // 9
printf("b = %d", b);    // 9

Постфіксний інкремент ( x++ ). Збільшує значення змінної на одиницю, але значенням виразу x++ буде те, що було до збільшення на одиницю:

int a = 8;
int b = a++;
printf("a = %d \n", a); // 9
printf("b = %d", b);    // 8

Префіксний декремент ( --x ). Зменшує значення змінної на одиницю, і отримане значення використовується як значення виразу --x

int a = 8;
int b = --a;
printf("a = %d \n", a); // 7
printf("b = %d", b);    // 7

Постфіксний декремент ( x-- ). Зменшує значення змінної на одиницю, але значенням виразу x-- буде те, що було до зменшення на одиницю:

int a = 8;
int b = a--;
printf("a = %d \n", a); // 7
printf("b = %d", b);    // 8

Розглянемо більш складну ситуацію:

int a = 8;
int b = 7;
int c = a+++b;
printf("a = %d \n", a); // 9
printf("b = %d \n", b); // 7
printf("c = %d \n", c); // 15

Тут операція трактується таким чином, що спочатку йде постфіксний інкремент, а потім додавання. Тобто фактично так:

int c = (a++) + b;

Аналогічно буде розцінюватися вираз з постфіксним інкрементом:

int c = a---b;

Наш партнер:
beta test mp3 playlist downloader