Dwa wyniki z jednej funkcji
Wskaźniki i napisy w tablicach char - Podstawy C++ (C++)
return oddaje jedną wartość. Gdy wyników jest więcej, funkcja dostaje adresy zmiennych na wyniki: minMax wpisuje najmniejszy i największy element tablicy.
#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];
}
}
}
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;
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.