Multiplikation, Division och Modulo
Multiplikationsoperator
Multiplikationsoperatorn * ger produkten av sina operander. Till exempel, om du vill bestämma mängden vatten som krävs för att fylla en pool:
Main.c
123456789101112131415#include <stdio.h> int main() { int height = 2; // In meters int width = 7; // In meters int length = 10; // In meters // A cubic meter contains one thousand liters int liters = (height * width * length) * 1000; printf("Size of pool: %d liters", liters); return 0; }
Divisionsoperator
Divisionsoperatorn / dividerar den vänstra operand med den högra.
Antag att du vill beräkna en bils hastighet:
Main.c
1234567891011#include <stdio.h> int main() { int s = 200; // In meters double t = 3; // Three hours double v = s / t; printf("Velocity = %f m/h", v); return 0; }
Genom att använda double-variabler säkerställs att vårt resultat kan vara ett decimaltal, vilket ger ett mer exakt svar. Om vi endast arbetade med heltalstyper skulle resultatet också vara ett heltal:
int + int => int
int + double => double
Main.c
1234567891011#include <stdio.h> int main() { int s = 200; // In meters int t = 3; // Three hours // Without `double v` variable printf("Velocity = %d m/h", s/t); return 0; }
Det är viktigt att notera att enbart ändring av formatangivaren inte åtgärdar en felaktig heltalsdivision:
Main.c
12345678910#include <stdio.h> int main() { int s = 200; // In meters int t = 3; // Three hours printf("Velocity = %f m/h", s/t); // Changed specifier return 0; }
Det finns dock ett sätt att få en korrekt division utan att introducera en ny variabel:
Main.c
1234567891011#include <stdio.h> int main() { int s = 200; // In meters double t = 3; // Three hours printf("Velocity = %f m/h", s/t); // Changed specificator return 0; }
För att en division ska ge ett decimalt resultat måste minst en av operanderna vara av en decimaltyp, såsom double.
Moduloperator
Operatorn % returnerar resten av en division. Till exempel:
Main.c
1234567891011#include <stdio.h> int main() { printf("Modulo 8 %% 5 = %d\n", 8 % 5); printf("Modulo 10 %% 3 = %d\n", 10 % 3); printf("Modulo 7 %% 5 = %d\n", 7 % 5); printf("Modulo 20 %% 5 = %d\n", 20 % 5); return 0; }
Om du försöker visa tecknet % i en sträng (t.ex. i ett printf-uttryck), använder du %% för att representera ett enda %. Detta talar om för kompilatorn att du vill skriva ut tecknet % och inte använda det som en formatangivare.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 2.63
Multiplikation, Division och Modulo
Svep för att visa menyn
Multiplikationsoperator
Multiplikationsoperatorn * ger produkten av sina operander. Till exempel, om du vill bestämma mängden vatten som krävs för att fylla en pool:
Main.c
123456789101112131415#include <stdio.h> int main() { int height = 2; // In meters int width = 7; // In meters int length = 10; // In meters // A cubic meter contains one thousand liters int liters = (height * width * length) * 1000; printf("Size of pool: %d liters", liters); return 0; }
Divisionsoperator
Divisionsoperatorn / dividerar den vänstra operand med den högra.
Antag att du vill beräkna en bils hastighet:
Main.c
1234567891011#include <stdio.h> int main() { int s = 200; // In meters double t = 3; // Three hours double v = s / t; printf("Velocity = %f m/h", v); return 0; }
Genom att använda double-variabler säkerställs att vårt resultat kan vara ett decimaltal, vilket ger ett mer exakt svar. Om vi endast arbetade med heltalstyper skulle resultatet också vara ett heltal:
int + int => int
int + double => double
Main.c
1234567891011#include <stdio.h> int main() { int s = 200; // In meters int t = 3; // Three hours // Without `double v` variable printf("Velocity = %d m/h", s/t); return 0; }
Det är viktigt att notera att enbart ändring av formatangivaren inte åtgärdar en felaktig heltalsdivision:
Main.c
12345678910#include <stdio.h> int main() { int s = 200; // In meters int t = 3; // Three hours printf("Velocity = %f m/h", s/t); // Changed specifier return 0; }
Det finns dock ett sätt att få en korrekt division utan att introducera en ny variabel:
Main.c
1234567891011#include <stdio.h> int main() { int s = 200; // In meters double t = 3; // Three hours printf("Velocity = %f m/h", s/t); // Changed specificator return 0; }
För att en division ska ge ett decimalt resultat måste minst en av operanderna vara av en decimaltyp, såsom double.
Moduloperator
Operatorn % returnerar resten av en division. Till exempel:
Main.c
1234567891011#include <stdio.h> int main() { printf("Modulo 8 %% 5 = %d\n", 8 % 5); printf("Modulo 10 %% 3 = %d\n", 10 % 3); printf("Modulo 7 %% 5 = %d\n", 7 % 5); printf("Modulo 20 %% 5 = %d\n", 20 % 5); return 0; }
Om du försöker visa tecknet % i en sträng (t.ex. i ett printf-uttryck), använder du %% för att representera ett enda %. Detta talar om för kompilatorn att du vill skriva ut tecknet % och inte använda det som en formatangivare.
Tack för dina kommentarer!