Data z jednej liczby: dzień i miesiąc przez wskaźniki
Wskaźniki i napisy w tablicach char - Podstawy C++ (C++)
W temacie świąt data była jedną liczbą miesiąc * 100 + dzień. splitDate rozbija ją na dwie zmienne wywołującego: dzień i miesiąc.
#include <iostream>
using namespace std;
// funkcja dostaje ADRES zmiennej, wiec moze ja zmienic
void addPoint(int *score) {
*score = *score + 1;
}
// zamiana dwoch zmiennych: bez wskaznikow funkcja zmienilaby tylko kopie
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
// dwa wyniki naraz: najmniejszy i najwiekszy element trafiaja pod podane adresy
void minMax(int t[], int n, int *low, int *high) {
*low = t[0];
*high = t[0];
for (int i = 1; i < n; i++) {
if (t[i] < *low) {
*low = t[i];
}
if (t[i] > *high) {
*high = t[i];
}
}
}
// data z tematu swiat (miesiac * 100 + dzien) rozbita na dwie zmienne
void splitDate(int code, int *day, int *month) {
*day = code % 100;
*month = code / 100;
}
int main() {
int x = 5;
int *p = &x; // p przechowuje adres zmiennej x
cout << "x = " << x << endl;
*p = 7; // zapis pod ten adres zmienia x
cout << "x = " << x << ", *p = " << *p << endl;
int points = 0;
addPoint(&points);
addPoint(&points);
cout << "punkty = " << points << endl;
int a = 3, b = 8;
swap(&a, &b);
cout << "a = " << a << ", b = " << b << endl;
int t[5] = {4, 9, 1, 7, 3};
int low, high;
minMax(t, 5, &low, &high);
cout << "min = " << low << ", max = " << high << endl;
int day, month;
splitDate(405, &day, &month);
cout << "Wielkanoc 2026: " << day << "." << (month < 10 ? "0" : "") << month << endl;
return 0;
}Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.
Wszystkie lekcje kursu Podstawy C++·Zaloguj się, aby zapisać postęp na koncie.