Operatori aritmetici (+ – * / % ++ –) în C

Adunare, scădere, înmulțire, împărțire, restul împărțirii, atribuiri compuse și incrementare cu ++ / --.

Sintaxă
a + b   a - b   a * b   a / b   a % b
x += 5;  x -= 1;  x *= 2;  x /= 3;  x %= 4;
++x  x++  --x  x--

Ce face Operatori aritmetici (+ - * / % ++ --)

Operatorii + - * / lucrează ca în matematică, cu o diferență: între doi întregi, / dă câtul întreg (7 / 2 este 3). % dă restul împărțirii și merge doar cu întregi. Din C99, câtul se trunchiază spre zero, deci -7 / 2 este -3, iar -7 % 2 este -1 (restul are semnul deîmpărțitului).

Atribuirile compuse scurtează scrierea: x += 5 înseamnă x = x + 5. ++x crește x cu 1 și dă valoarea nouă; x++ crește x, dar dă valoarea veche. Ca instrucțiune separată (i++;), cele două fac același lucru.

Împărțirea întreagă la zero (5 / 0, 5 % 0) este comportament nedefinit; de obicei programul se oprește. Verifică împărțitorul înainte.

Exemple

Exemplul 1: Câtul și restul

150 de minute înseamnă 2 ore (câtul) și 30 de minute (restul).

#include <stdio.h>

int main(void) {
    int minute = 150;
    printf("%d minute = %d ore și %d minute\n", minute, minute / 60, minute % 60);
    printf("-7 / 2 = %d, -7 %% 2 = %d\n", -7 / 2, -7 % 2);
    printf("7.0 / 2 = %.1f\n", 7.0 / 2);
    return 0;
}

Rezultat

150 minute = 2 ore și 30 minute
-7 / 2 = -3, -7 % 2 = -1
7.0 / 2 = 3.5

Exemplul 2: Atribuiri compuse: un coș de cumpărături

#include <stdio.h>

int main(void) {
    int total = 0;
    total += 25;   // pâine și lapte
    total += 40;   // cafea
    total -= 5;    // reducere
    total *= 2;    // aceeași comandă de două ori
    printf("Total: %d lei\n", total);
    return 0;
}

Rezultat

Total: 120 lei

Exemplul 3: Diferența dintre ++x și x++

x++ folosește valoarea veche în expresie, ++x pe cea nouă. După ambele, variabila a crescut cu 1.

#include <stdio.h>

int main(void) {
    int a = 5, b = 5;
    int x = a++;
    int y = ++b;
    printf("x = %d, a = %d\n", x, a);
    printf("y = %d, b = %d\n", y, b);
    return 0;
}

Rezultat

x = 5, a = 6
y = 6, b = 6

Greșeli frecvente

  • Scrii i = i++; sau printf("%d %d", i, i++);. Modifici și citești aceeași variabilă fără ordine definită: comportament nedefinit.
  • Folosești % cu double. Nu compilează; pentru numere reale există fmod din math.h.
  • Verifici dacă un număr este impar cu n % 2 == 1. Pentru numere negative, restul este -1; scrie n % 2 != 0.

Comenzi înrudite

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Operatori aritmetici (+ – * / % ++ –)

Ai o nelămurire despre utilizarea comenzii Operatori aritmetici (+ – * / % ++ –) sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.