[i]Zadatak 11.17. Napišite funkciju koja za zadani prirodni broj n ∈ N vraća sumu i produkt svih prirodnih brojeva strogo manjih od n.[/i]
Moje rješenje:
[code:1]
#include <stdio.h>
void f(int n, int *suma, int *produkt){
int i;
*suma = 0;
*produkt = 1;
for (i = 1; i < n; ++i){
*suma += i;
*produkt *= i;
}
return;
}
int main(void)
{
int suma, produkt, n;
printf ("Unesite n: "); scanf ("%d", &n);
f(n,&suma,&produkt);
printf ("Suma iznosi %d a produkt %d.", suma, produkt);
scanf("%%");
return 0;
}
[/code:1]
Sad, mene zanima jesam li dobro shvatio zadatak. Rješenje mi djeluje čudno, a ne znam je li stvar samo u mojoj nenaviknutosti na pointere...
U tekstu zadatka piše da funkcija treba vraćati sumu i produkt, a u napomeni da funkcija ne može vratiti više od jedne vrijednosti, što znači da ne može vraćati sumu i produkt. :D
Znači li to da funkcija treba vraćati jednu od tih vrijednosti a druga da se dohvaća preko varijabilnog argumenata, ili se obje smiju dohvaćati preko varijabilnih argumenata, kao kod mene? Sve u svemu, zadatak mi je pomalo maglovit pa bih molio objašnjenje... :)
Zadatak 11.17. Napišite funkciju koja za zadani prirodni broj n ∈ N vraća sumu i produkt svih prirodnih brojeva strogo manjih od n.
Moje rješenje:
Kod: |
#include <stdio.h>
void f(int n, int *suma, int *produkt){
int i;
*suma = 0;
*produkt = 1;
for (i = 1; i < n; ++i){
*suma += i;
*produkt *= i;
}
return;
}
int main(void)
{
int suma, produkt, n;
printf ("Unesite n: "); scanf ("%d", &n);
f(n,&suma,&produkt);
printf ("Suma iznosi %d a produkt %d.", suma, produkt);
scanf("%%");
return 0;
}
|
Sad, mene zanima jesam li dobro shvatio zadatak. Rješenje mi djeluje čudno, a ne znam je li stvar samo u mojoj nenaviknutosti na pointere...
U tekstu zadatka piše da funkcija treba vraćati sumu i produkt, a u napomeni da funkcija ne može vratiti više od jedne vrijednosti, što znači da ne može vraćati sumu i produkt.
Znači li to da funkcija treba vraćati jednu od tih vrijednosti a druga da se dohvaća preko varijabilnog argumenata, ili se obje smiju dohvaćati preko varijabilnih argumenata, kao kod mene? Sve u svemu, zadatak mi je pomalo maglovit pa bih molio objašnjenje...
|