Kintamieji ir duomenys
Kintamasis yra pavadinta vieta atmintyje, kurioje laikoma reikšmė. C kalboje prieš naudodamas kintamąjį turi nurodyti jo tipą:
int amzius = 25; // sveikas skaičius
double kaina = 3.99; // trupmeninis skaičius
char raide = 'A'; // vienas simbolis
int— sveiki skaičiai (1, 42, -7).double— skaičiai su kableliu (3.14, -0.5).char— vienas simbolis, rašomas viengubose kabutėse.
Spausdinimas su formatais
printf naudoja formato žymeklius, kad įterptų kintamųjų reikšmes:
#include <stdio.h>
int main(void) {
int amzius = 25;
double kaina = 3.99;
printf("Amzius: %d\n", amzius);
printf("Kaina: %.2f\n", kaina);
return 0;
}
%d— sveikas skaičius (int).%f— trupmeninis skaičius (double);%.2frodo du skaičius po kablelio.%c— simbolis,%s— tekstas (eilutė).
Aritmetika
int a = 7, b = 3;
printf("Suma: %d\n", a + b); // 10
printf("Skirtumas: %d\n", a - b); // 4
printf("Sandauga: %d\n", a * b); // 21
printf("Dalmuo: %d\n", a / b); // 2 (!)
printf("Liekana: %d\n", a % b); // 1
Dėmesio.
7 / 3lygu2, ne2.33. Kai abu skaičiai yraint, dalyba nukerta trupmeną. Jei nori tikslaus rezultato, naudokdouble:double tikslus = 7.0 / 3.0; // 2.333...
Naudotojo įvestis su scanf
scanf perskaito reikšmę iš klaviatūros ir įrašo į kintamąjį. Atkreipk dėmesį į & ženklą prieš kintamojo vardą:
#include <stdio.h>
int main(void) {
int amzius;
printf("Kiek tau metu? ");
scanf("%d", &amzius);
printf("Po 10 metu tau bus %d.\n", amzius + 10);
return 0;
}
&amzius reiškia „kintamojo amzius adresą" — tai pasako scanf, kur įrašyti reikšmę. Apie tai gilintis nereikia; tiesiog atmink dėti & prieš kintamąjį.
Trikčių sprendimas
Skaičiai dalijant „dingsta" — naudoji int ten, kur reikia double. Žiūrėk įspėjimą aukščiau.
scanf neveikia — patikrink, ar nepamiršai & prieš kintamąjį.
Keista išvestis su %d — galbūt spausdini double su %d formatu. Tipas turi atitikti žymeklį.
Projektas CLion
Šios pamokos kodą įdėk į savo CLion projektą StructuredC. Žingsnis žemiau rodo pilną main.c turinį po pakeitimo — gali kopijuoti tiesiogiai į CLion ir paspausti žalią ▶ mygtuką.
Apibendrinimas
Išmokai saugoti duomenis su int, double ir char, atlikti aritmetiką ir perskaityti įvestį su scanf. Supratai sveikųjų skaičių dalybos spąstus.
Kitoje pamokoje programa pradės priimti sprendimus su if.
Pakeisk main.c — kintamieji ir įvestis
#include <stdio.h>
int main(void) {
int amzius;
printf("Kiek tau metu? ");
scanf("%d", &amzius);
int po10 = amzius + 10;
double pusmetis = amzius / 2.0;
printf("Po 10 metu tau bus %d.\n", po10);
printf("Puse tavo amziaus: %.1f\n", pusmetis);
return 0;
}
Pakeisk visą main.c turinį šiuo kodu. Programa paklaus tavo amžiaus ir atliks porą skaičiavimų.
Ką šis kodas daro:
int amzius;— paskelbia sveiką kintamąjį (kol kas be reikšmės).scanf("%d", &amzius)— perskaito skaičių iš klaviatūros įamzius. Nepamiršk&.double pusmetis = amzius / 2.0;— dalyba iš2.0(ne2) duoda trupmeninį rezultatą.%.1f— spausdinadoublesu vienu skaičiumi po kablelio.
Svarbu: jei dalytum iš 2 (sveiko), rezultatas būtų nukirstas. 2.0 priverčia trupmeninę dalybą.