Diskuze: Naplnenie poľa číslami zo vstupu
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
#include<stdio.h>
int main(void){
int array[5];
int sum = 0;
int i;
printf("Zadajte 5 cisel: ");
scanf("%d %d %d %d %d", &array[0], &array[1], &array[2], &array[3], &array[4]);
for(i = 0; i < 5; i++) sum += array[i];
printf("Sucet cisel je %d\n", sum);
return 0;
}
Ahoj stačí aby si načítaval hodnoty do poľa v cykle, v ktorom môžeš rovno aj spočítavať súčet
#include <stdio.h>
#include <stdlib.h>
#define ARRAY_SIZE 5
int main() {
int numbers[ARRAY_SIZE];
int i, sum = 0;
printf("Zadajte %d cisel: \n", ARRAY_SIZE);
for(i = 0; i < ARRAY_SIZE; i++){
scanf("%d", &numbers[i]);
sum += numbers[i];
}
printf("Sucet cisiel je %d\n", sum);
return 0;
}
scanf("%d %d %d %d %d", &array[0], &array[1], &array[2], &array[3], &array[4]);
Tento kód síce funguje, ale hľadám niečo všeobecnejšie, čo by fungovalo pri rôznej dĺžke poľa (ktorá môže byť dopredu známa).
Pokud chceš aby to fungovalo pro různý počet prvků v poli, sestav si funkci pro proměnný počet parametru nebo použij způsob který zde prezentoval Matúš Olejník. Nevidím důvod proč se vyhýbat řídícím příkazům.
Popř. by šlo použít while (scanf() >0) protože scanf při neplatném
načtení vrátí záporný int. Pak bys nemusel ani dopředu znát počet
čísel.
Není testováno, spíše myšlenka. Jsem na telefonu.
Kódu zdar.
Ďakujem za všetky radi. Môj problém bol v tom že som potreboval zadať celý vstup cez jeden riadok. Myslel som si, že ak dám scanf() do for-cyklu, tak za každou hodnotou budem musieť stlačiť ENTER a vstup nebude v jednom riadku, ale keď som vyskúšal for-cyklus, tak program fungoval aj keď som hodnoty oddeľoval medzerou.
Program funguje tak že funkce scanf() čte znaky dokud jsou platné v rámci specifikace formátu. Tuto hodnotu, pokud je platná, přiřadí do promenne kterou určuje další argument. Zbylé znaky zůstávají ve vstupním bufferu a mohou být načteny další vstupní funkcí. Funkce scanf() se provede až po zadání znaku nového řádku. V nové interakci cyklu, ve které opět figuruje funkce scanf(), jsou načteny další znaky a celý proces pokračuje dokud platí podmínka cyklu.
Zobrazeno 8 zpráv z 8.