Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
gflegar Forumaš(ica)
Pridružen/a: 12. 10. 2011. (15:03:41) Postovi: (10D)16
Spol:
|
|
[Vrh] |
|
anamarie Forumaš(ica)
Pridružen/a: 07. 09. 2011. (10:59:19) Postovi: (87)16
Spol:
|
Postano: 13:26 pon, 12. 3. 2012 Naslov: |
|
|
Zadatak:
Napišite program koji učitava prirodni broj n ≤ 17 i niz od n cijelih brojeva. Program treba kreirati donjetrokutastu matricu M reda n kojoj se učitani brojevi nalaze na dijagonali (redom kojim su učitani), a za elemente ispod dijagonale vrijedi:
[tex]Mi,j=(−5M_{i−1,j}−5M_{i,j+1})\ mod\ 5818884, [/tex]
gdje mod označava ostatak pri dijeljenju lijevog broja s desnim.
Program treba ispisati elemente posljednjeg retka matrice M (ispisane brojeve odvojite razmakom)
Zašto ovaj kod nije dobar?
[code:1]#include<stdio.h>
int main()
{
int n,a[17],i,j,M[17][17];
scanf("%d",&n);
for(i=0;i<n;i++) scanf("%d",&a[i]);
for(i=0;i<n;i++)
for(j=n-1;j>=0;j--)
{ if(i==j) M[i][j]=a[i];
if(i<j) M[i][j]=0;
if(i>j) M[i][j]=(-5*M[i-1][j]-5*M[i][j+1])%5818884;
}
for(j=0;j<n;j++) printf("%d ",M[n-1][j]);
return 0;
}[/code:1]
Zadatak:
Napišite program koji učitava prirodni broj n ≤ 17 i niz od n cijelih brojeva. Program treba kreirati donjetrokutastu matricu M reda n kojoj se učitani brojevi nalaze na dijagonali (redom kojim su učitani), a za elemente ispod dijagonale vrijedi:
[tex]Mi,j=(−5M_{i−1,j}−5M_{i,j+1})\ mod\ 5818884, [/tex]
gdje mod označava ostatak pri dijeljenju lijevog broja s desnim.
Program treba ispisati elemente posljednjeg retka matrice M (ispisane brojeve odvojite razmakom)
Zašto ovaj kod nije dobar?
Kod: | #include<stdio.h>
int main()
{
int n,a[17],i,j,M[17][17];
scanf("%d",&n);
for(i=0;i<n;i++) scanf("%d",&a[i]);
for(i=0;i<n;i++)
for(j=n-1;j>=0;j--)
{ if(i==j) M[i][j]=a[i];
if(i<j) M[i][j]=0;
if(i>j) M[i][j]=(-5*M[i-1][j]-5*M[i][j+1])%5818884;
}
for(j=0;j<n;j++) printf("%d ",M[n-1][j]);
return 0;
} |
|
|
[Vrh] |
|
slonic~tonic Forumaš(ica)
Pridružen/a: 26. 10. 2011. (14:16:34) Postovi: (84)16
Spol:
|
Postano: 16:44 pon, 12. 3. 2012 Naslov: |
|
|
[quote="anamarie"]Zadatak:
Napišite program koji učitava prirodni broj n ≤ 17 i niz od n cijelih brojeva. Program treba kreirati donjetrokutastu matricu M reda n kojoj se učitani brojevi nalaze na dijagonali (redom kojim su učitani), a za elemente ispod dijagonale vrijedi:
[tex]Mi,j=(−5M_{i−1,j}−5M_{i,j+1})\ mod\ 5818884, [/tex]
gdje mod označava ostatak pri dijeljenju lijevog broja s desnim.
Program treba ispisati elemente posljednjeg retka matrice M (ispisane brojeve odvojite razmakom)
Zašto ovaj kod nije dobar?
[code:1]#include<stdio.h>
int main()
{
int n,a[17],i,j,M[17][17];
scanf("%d",&n);
for(i=0;i<n;i++) scanf("%d",&a[i]);
for(i=0;i<n;i++)
for(j=n-1;j>=0;j--)
{ if(i==j) M[i][j]=a[i];
if(i<j) M[i][j]=0;
if(i>j) M[i][j]=(-5*M[i-1][j]-5*M[i][j+1])%5818884;
}
for(j=0;j<n;j++) printf("%d ",M[n-1][j]);
return 0;
}[/code:1][/quote]
ispisi si matricu, bit ce ti lakse vidjeti u cem je greska ;)
anamarie (napisa): | Zadatak:
Napišite program koji učitava prirodni broj n ≤ 17 i niz od n cijelih brojeva. Program treba kreirati donjetrokutastu matricu M reda n kojoj se učitani brojevi nalaze na dijagonali (redom kojim su učitani), a za elemente ispod dijagonale vrijedi:
[tex]Mi,j=(−5M_{i−1,j}−5M_{i,j+1})\ mod\ 5818884, [/tex]
gdje mod označava ostatak pri dijeljenju lijevog broja s desnim.
Program treba ispisati elemente posljednjeg retka matrice M (ispisane brojeve odvojite razmakom)
Zašto ovaj kod nije dobar?
Kod: | #include<stdio.h>
int main()
{
int n,a[17],i,j,M[17][17];
scanf("%d",&n);
for(i=0;i<n;i++) scanf("%d",&a[i]);
for(i=0;i<n;i++)
for(j=n-1;j>=0;j--)
{ if(i==j) M[i][j]=a[i];
if(i<j) M[i][j]=0;
if(i>j) M[i][j]=(-5*M[i-1][j]-5*M[i][j+1])%5818884;
}
for(j=0;j<n;j++) printf("%d ",M[n-1][j]);
return 0;
} |
|
ispisi si matricu, bit ce ti lakse vidjeti u cem je greska
_________________ Lakše je naučiti matematiku nego raditi bez nje.
|
|
[Vrh] |
|
anamarie Forumaš(ica)
Pridružen/a: 07. 09. 2011. (10:59:19) Postovi: (87)16
Spol:
|
Postano: 16:53 pon, 12. 3. 2012 Naslov: |
|
|
[quote]ispisi si matricu, bit ce ti lakse vidjeti u cem je greska ;)[/quote]
pa ispisala sam si,npr n=3,i niz 1,2,3 je matrica
1 0 0
-15 2 0
[b]200 -25 3[/b]
i ne vidim gdje je greška
Citat: | ispisi si matricu, bit ce ti lakse vidjeti u cem je greska |
pa ispisala sam si,npr n=3,i niz 1,2,3 je matrica
1 0 0
-15 2 0
200 -25 3
i ne vidim gdje je greška
|
|
[Vrh] |
|
Gino Forumaš(ica)
Pridružen/a: 11. 09. 2008. (10:54:06) Postovi: (370)16
Lokacija: Pula
|
Postano: 17:14 pon, 12. 3. 2012 Naslov: |
|
|
uzmi si matricu reda 4, i mislim da ti nece raditi, problem je sto se kreces po stupcima(ili retcima), a trebala bi paralelno s dijagonalom, nacrtaj si neku malo vecu matricu, npr reda 5 :D i pogledaj si koje elemente trebas znat da bi odredila neki drugi...
uzmi si matricu reda 4, i mislim da ti nece raditi, problem je sto se kreces po stupcima(ili retcima), a trebala bi paralelno s dijagonalom, nacrtaj si neku malo vecu matricu, npr reda 5 i pogledaj si koje elemente trebas znat da bi odredila neki drugi...
_________________ Mario Berljafa
|
|
[Vrh] |
|
anamarie Forumaš(ica)
Pridružen/a: 07. 09. 2011. (10:59:19) Postovi: (87)16
Spol:
|
Postano: 17:57 pon, 12. 3. 2012 Naslov: |
|
|
[quote="Gino"]uzmi si matricu reda 4, i mislim da ti nece raditi, problem je sto se kreces po stupcima(ili retcima), a trebala bi paralelno s dijagonalom, nacrtaj si neku malo vecu matricu, npr reda 5 :D i pogledaj si koje elemente trebas znat da bi odredila neki drugi...[/quote]
uzela sam i matricu reda 5 i reda 6 i ispisuje dobro( bar mislim tako)
npr n=5, niz 1,2,3,4,5
1 0 0 0 0
-15 2 0 0 0
200 -25 3 0 0
-2500 300 -35 4 0
30000 -3500 400 -45 5
Gino (napisa): | uzmi si matricu reda 4, i mislim da ti nece raditi, problem je sto se kreces po stupcima(ili retcima), a trebala bi paralelno s dijagonalom, nacrtaj si neku malo vecu matricu, npr reda 5 i pogledaj si koje elemente trebas znat da bi odredila neki drugi... |
uzela sam i matricu reda 5 i reda 6 i ispisuje dobro( bar mislim tako)
npr n=5, niz 1,2,3,4,5
1 0 0 0 0
-15 2 0 0 0
200 -25 3 0 0
-2500 300 -35 4 0
30000 -3500 400 -45 5
|
|
[Vrh] |
|
Gino Forumaš(ica)
Pridružen/a: 11. 09. 2008. (10:54:06) Postovi: (370)16
Lokacija: Pula
|
Postano: 18:10 pon, 12. 3. 2012 Naslov: |
|
|
da, nisam bas pre detaljno gledao kod, samo sam mislio da se radi o tome :D
sad sam malo razmisljao kako popunjavas matricu, jako komplicirano :D, ali dobro :)
jedino sto mi jos pada na pamet je da su neki od ucitanih brojeva pre veliki, pa stvari ne ispadaju kako trebaju, na primjer ako onaj modul radis i prilikom mnozenja s 5, ispalo bi dobro (ako se radi o tome)
ali i samom zamjenom ovog
[tt]{ if(i==j) M[i][j]=a[i];[/tt] s ovim
[tt]{ if(i==j) M[i][j]=a[i]%5818884;[/tt]
bi bilo rjesenje tog problema
da, nisam bas pre detaljno gledao kod, samo sam mislio da se radi o tome
sad sam malo razmisljao kako popunjavas matricu, jako komplicirano , ali dobro
jedino sto mi jos pada na pamet je da su neki od ucitanih brojeva pre veliki, pa stvari ne ispadaju kako trebaju, na primjer ako onaj modul radis i prilikom mnozenja s 5, ispalo bi dobro (ako se radi o tome)
ali i samom zamjenom ovog
{ if(i==j) M[i][j]=a[i]; s ovim
{ if(i==j) M[i][j]=a[i]%5818884;
bi bilo rjesenje tog problema
_________________ Mario Berljafa
|
|
[Vrh] |
|
Namdev Forumaš(ica)
Pridružen/a: 01. 11. 2011. (19:23:40) Postovi: (29)16
Spol:
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
gflegar Forumaš(ica)
Pridružen/a: 12. 10. 2011. (15:03:41) Postovi: (10D)16
Spol:
|
Postano: 20:21 pon, 12. 3. 2012 Naslov: |
|
|
[quote="vsego"]Ostatak pri dijeljenju bi trebao biti >= 0.[/quote]
To sam i ja prvo mislio kod rjesavanja svoje zadace :)
Ali na kraju ovaj kod nije prosao:
[spoiler]
[code:1]#include <stdio.h>
#define MOD 10038168
int main(void){
int M[17][17], n, i, j;
scanf("%d", &n);
for (i = 0; i < n; ++i) {
scanf("%d", M[i] + i);
}
for (i = 1; i < n; ++i) {
for (j = i - 1; j > -1; --j) {
M[i][j] = (4 * M[i-1][j] - 5 * M[i][j+1]) % MOD;
if (M[i][j] < 0) M[i][j] += MOD;
}
}
for (i = 0; i < n; ++i) {
printf("%d ", M[n-1][i]);
}
printf("\n");
return 0;
}[/code:1]
[/spoiler]
a ovaj radi bez problema:
[spoiler]
[code:1]#include <stdio.h>
#define MOD 10038168
int main(void){
int M[17][17], n, i, j;
scanf("%d", &n);
for (i = 0; i < n; ++i) {
scanf("%d", M[i] + i);
}
for (i = 1; i < n; ++i) {
for (j = i - 1; j > -1; --j) {
M[i][j] = (4 * M[i-1][j] - 5 * M[i][j+1]) % MOD;
}
}
for (i = 0; i < n; ++i) {
printf("%d ", M[n-1][i]);
}
printf("\n");
return 0;
}[/code:1]
[/spoiler]
vsego (napisa): | Ostatak pri dijeljenju bi trebao biti >= 0. |
To sam i ja prvo mislio kod rjesavanja svoje zadace
Ali na kraju ovaj kod nije prosao:
Spoiler [hidden; click to show]: |
Kod: | #include <stdio.h>
#define MOD 10038168
int main(void){
int M[17][17], n, i, j;
scanf("%d", &n);
for (i = 0; i < n; ++i) {
scanf("%d", M[i] + i);
}
for (i = 1; i < n; ++i) {
for (j = i - 1; j > -1; --j) {
M[i][j] = (4 * M[i-1][j] - 5 * M[i][j+1]) % MOD;
if (M[i][j] < 0) M[i][j] += MOD;
}
}
for (i = 0; i < n; ++i) {
printf("%d ", M[n-1][i]);
}
printf("\n");
return 0;
} |
|
a ovaj radi bez problema:
Spoiler [hidden; click to show]: |
Kod: | #include <stdio.h>
#define MOD 10038168
int main(void){
int M[17][17], n, i, j;
scanf("%d", &n);
for (i = 0; i < n; ++i) {
scanf("%d", M[i] + i);
}
for (i = 1; i < n; ++i) {
for (j = i - 1; j > -1; --j) {
M[i][j] = (4 * M[i-1][j] - 5 * M[i][j+1]) % MOD;
}
}
for (i = 0; i < n; ++i) {
printf("%d ", M[n-1][i]);
}
printf("\n");
return 0;
} |
|
Zadnja promjena: gflegar; 21:20 pon, 12. 3. 2012; ukupno mijenjano 1 put.
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 21:10 pon, 12. 3. 2012 Naslov: |
|
|
Sada bi bilo obratno. ;) Netko je upozorio na propust (mislim bas ti), pa je pokrpano.
Bilo bi lijepo da maknes kodove, da ljudi ne dolaze u napast c/p-ati. Ja necu micati; tko prepise, samo sebe vara.
Sada bi bilo obratno. Netko je upozorio na propust (mislim bas ti), pa je pokrpano.
Bilo bi lijepo da maknes kodove, da ljudi ne dolaze u napast c/p-ati. Ja necu micati; tko prepise, samo sebe vara.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
|
|
[Vrh] |
|
gflegar Forumaš(ica)
Pridružen/a: 12. 10. 2011. (15:03:41) Postovi: (10D)16
Spol:
|
|
[Vrh] |
|
anamarie Forumaš(ica)
Pridružen/a: 07. 09. 2011. (10:59:19) Postovi: (87)16
Spol:
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
kiara Forumaš(ica)
Pridružen/a: 15. 11. 2011. (23:22:57) Postovi: (55)16
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 15:51 sri, 14. 3. 2012 Naslov: |
|
|
Negativni ostatak se ne pretvara u pozitivni tako da uzmes apsolutnu vrijednost. Consider this:
[tex]-1 {\rm\ mod\ } 3 = -1[/tex],
ali, svi brojevi oblika [tex]-1 + 3k[/tex], za cjelobrojni [i]k[/i], moraju imati isti ostatak pri dijeljenju s 3. Dakle:
[tex]-1 {\rm\ mod\ } 3 = (-1+3) {\rm\ mod\ } 3 = 2 {\rm\ mod\ } 3 = 2 \ne 1 = |-1 {\rm\ mod\ } 3|[/tex].
Kako to ide, prepustam tebi. Ovdje ima dovoljno hintova i za srednjoskolca, a kamoli ne za studenta matematike. ;)
Negativni ostatak se ne pretvara u pozitivni tako da uzmes apsolutnu vrijednost. Consider this:
[tex]-1 {\rm\ mod\ } 3 = -1[/tex],
ali, svi brojevi oblika [tex]-1 + 3k[/tex], za cjelobrojni k, moraju imati isti ostatak pri dijeljenju s 3. Dakle:
[tex]-1 {\rm\ mod\ } 3 = (-1+3) {\rm\ mod\ } 3 = 2 {\rm\ mod\ } 3 = 2 \ne 1 = |-1 {\rm\ mod\ } 3|[/tex].
Kako to ide, prepustam tebi. Ovdje ima dovoljno hintova i za srednjoskolca, a kamoli ne za studenta matematike.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
|
|
[Vrh] |
|
anamarie Forumaš(ica)
Pridružen/a: 07. 09. 2011. (10:59:19) Postovi: (87)16
Spol:
|
Postano: 20:39 sri, 14. 3. 2012 Naslov: |
|
|
Napišite program koji učitava prirodni broj n ≤ 17 i niz od 2n−1 cijelih brojeva.
Program treba kreirati gornjetrokutastu matricu M reda n kojoj se učitani brojevi nalaze po redu u prvom retku i zadnjem stupcu (tj. učitani brojevi su redom
[tex] M_{1,1}, M_{1,2},..., M_{1,n}, M_{2,n},... M_{n,n}),[/tex]a za elemente gornjeg trokuta vrijedi:
[tex]M_{i,j}=(2M_{i−1,j}−4M_{i,j+1})\ mod\ 1785978[/tex]
gdje mod označava nenegativni ostatak pri dijeljenju lijevog broja s desnim.
Program treba ispisati elemente glavne dijagonale matrice M (ispisane brojeve odvojite razmakom).
I ovaj mi zadatak zadaća ne prihvaća,ali ne vidim grešku?
[code:1]#include<stdio.h>
int main()
{
int n,a[17],i,j,M[17][17];
scanf("%d",&n);
for(i=0;i<2*n-1;i++) scanf("%d",&a[i]);
for(i=0;i<n;i++)
{for(j=n-1;j>=0;j--)
{ if(i==0 || j==n-1) M[i][j]=a[i+j];
if(j<i) M[i][j]=0;
if(i>0 && j<n-1 && i<=j) M[i][j]=(2*M[i-1][j]-4*M[i][j+1])%1785978;
if(i>0 && j<n-1 && i<=j && M[i][j]<0) M[i][j]+=1785978;
}
}
for(i=0;i<n;i++) printf("%d ", M[i][i]);
return 0;
}[/code:1]
Napišite program koji učitava prirodni broj n ≤ 17 i niz od 2n−1 cijelih brojeva.
Program treba kreirati gornjetrokutastu matricu M reda n kojoj se učitani brojevi nalaze po redu u prvom retku i zadnjem stupcu (tj. učitani brojevi su redom
[tex] M_{1,1}, M_{1,2},..., M_{1,n}, M_{2,n},... M_{n,n}),[/tex]a za elemente gornjeg trokuta vrijedi:
[tex]M_{i,j}=(2M_{i−1,j}−4M_{i,j+1})\ mod\ 1785978[/tex]
gdje mod označava nenegativni ostatak pri dijeljenju lijevog broja s desnim.
Program treba ispisati elemente glavne dijagonale matrice M (ispisane brojeve odvojite razmakom).
I ovaj mi zadatak zadaća ne prihvaća,ali ne vidim grešku?
Kod: | #include<stdio.h>
int main()
{
int n,a[17],i,j,M[17][17];
scanf("%d",&n);
for(i=0;i<2*n-1;i++) scanf("%d",&a[i]);
for(i=0;i<n;i++)
{for(j=n-1;j>=0;j--)
{ if(i==0 || j==n-1) M[i][j]=a[i+j];
if(j<i) M[i][j]=0;
if(i>0 && j<n-1 && i<=j) M[i][j]=(2*M[i-1][j]-4*M[i][j+1])%1785978;
if(i>0 && j<n-1 && i<=j && M[i][j]<0) M[i][j]+=1785978;
}
}
for(i=0;i<n;i++) printf("%d ", M[i][i]);
return 0;
} |
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 21:09 sri, 14. 3. 2012 Naslov: |
|
|
Program ti nista ne ispisuje jer imas premalo prostora u definiciji niza [tt]a[/tt], pa ti neka od vrijednosti pregazi varijablu [tt]n[/tt] (ako je rijec o nepozitivnoj vrijednosti, ostanu ti prazne petlje). Usput, taj niz je cisti vishak -- brojevi se mogu uredno ucitavati direktno u matricu.
Program ti nista ne ispisuje jer imas premalo prostora u definiciji niza a, pa ti neka od vrijednosti pregazi varijablu n (ako je rijec o nepozitivnoj vrijednosti, ostanu ti prazne petlje). Usput, taj niz je cisti vishak – brojevi se mogu uredno ucitavati direktno u matricu.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
|
|
[Vrh] |
|
anamarie Forumaš(ica)
Pridružen/a: 07. 09. 2011. (10:59:19) Postovi: (87)16
Spol:
|
|
[Vrh] |
|
Sinuhe Forumaš(ica)
Pridružen/a: 05. 08. 2010. (21:55:23) Postovi: (6)16
Spol:
|
Postano: 10:05 čet, 15. 3. 2012 Naslov: |
|
|
Napišite program koji učitava prirodni broj k < 9, te niz od k različitih dekadskih znamenaka. Ukoliko učitane znamenke nisu različite, program treba ispisati poruku "Greska!" (bez navodnika).
Program treba ispisati sumu svih prirodnih brojeva čije su znamenke iz učitanog niza, te se ne ponavljaju unutar jednog broja.
Na primjer, za k = 2 i učitane brojeve 1 i 3, program ispisuje "48" (jer je 1+3+13+31=48 ).
Imam problem,kad se među učitanim brojevima nađe nula program poludi.Koji je lijek za to?
[code:1]#include <stdio.h>
int suma=0;
int dobar(int broj)
{ int i=0,j,k,l;
int noviBroj[10];
while(broj)
{ noviBroj[i]=broj%10;
broj/=10;
++i;
}
for(k=0;k<i;++k)
{
for(l=0;l<k;++l)
{
if (noviBroj[k]==noviBroj[l])
return 0;
}
}
return 1;
}
void fja(int broj[], int kraj, int tren)
{
int noviTren,i;
if(dobar(tren))
suma+=tren;
else return;
for(i=0;i<kraj;++i)
{
noviTren=tren*10+broj[i];
fja(broj,kraj,noviTren);
}
}
int main(void)
{
int i,k,mjesto[10],j;
scanf("%d", &k);
for (i=0;i<k;++i)
{ scanf("%d", &mjesto[i]);
for (j=0;j<i;++j)
{
if(mjesto[i]==mjesto[j])
{ printf("Greska!");
exit(0);
}
}
}
fja(mjesto,k,0);
printf("%d", suma);
return 0;
}
[/code:1]
Napišite program koji učitava prirodni broj k < 9, te niz od k različitih dekadskih znamenaka. Ukoliko učitane znamenke nisu različite, program treba ispisati poruku "Greska!" (bez navodnika).
Program treba ispisati sumu svih prirodnih brojeva čije su znamenke iz učitanog niza, te se ne ponavljaju unutar jednog broja.
Na primjer, za k = 2 i učitane brojeve 1 i 3, program ispisuje "48" (jer je 1+3+13+31=48 ).
Imam problem,kad se među učitanim brojevima nađe nula program poludi.Koji je lijek za to?
Kod: | #include <stdio.h>
int suma=0;
int dobar(int broj)
{ int i=0,j,k,l;
int noviBroj[10];
while(broj)
{ noviBroj[i]=broj%10;
broj/=10;
++i;
}
for(k=0;k<i;++k)
{
for(l=0;l<k;++l)
{
if (noviBroj[k]==noviBroj[l])
return 0;
}
}
return 1;
}
void fja(int broj[], int kraj, int tren)
{
int noviTren,i;
if(dobar(tren))
suma+=tren;
else return;
for(i=0;i<kraj;++i)
{
noviTren=tren*10+broj[i];
fja(broj,kraj,noviTren);
}
}
int main(void)
{
int i,k,mjesto[10],j;
scanf("%d", &k);
for (i=0;i<k;++i)
{ scanf("%d", &mjesto[i]);
for (j=0;j<i;++j)
{
if(mjesto[i]==mjesto[j])
{ printf("Greska!");
exit(0);
}
}
}
fja(mjesto,k,0);
printf("%d", suma);
return 0;
}
|
|
|
[Vrh] |
|
|