Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
pubava Forumaš(ica)
Pridružen/a: 08. 10. 2014. (13:47:07) Postovi: (A)16
|
|
[Vrh] |
|
pubava Forumaš(ica)
Pridružen/a: 08. 10. 2014. (13:47:07) Postovi: (A)16
|
Postano: 21:52 pet, 12. 6. 2015 Naslov: |
|
|
Pokušavam riješiti zadatak 8.1.48. iz skripte, ali mi se program stalno ruši i mislim da je to kad pokušavam raditi sa elementima niza studenti. Može pomoć? :)
[code:1]
typedef struct{
char ime[51];
char prezime[51];
int ocjena[2];
} student;
...
student* studenti;
char s1[51];
char s2[51];
int i, j, n=0, o;
...
while(fscanf(in1, "%[^;];%[^;];%d ", s1, s2, &o)==3)
{
studenti=(student*)realloc(studenti, (++n)*sizeof(student));
strcpy(studenti[n-1].ime, s1);
(tu prestaje radit u prvom prolazu petlje)
strcpy(studenti[n-1].prezime, s2);
studenti[n-1].ocjena[0]=o;
studenti[n-1].ocjena[1]=0;
}
...
[/code:1]
EDIT: Mislim da sam shvatila. Nisam inicijalizirala studenti na NULL. :oops:
Pokušavam riješiti zadatak 8.1.48. iz skripte, ali mi se program stalno ruši i mislim da je to kad pokušavam raditi sa elementima niza studenti. Može pomoć?
Kod: |
typedef struct{
char ime[51];
char prezime[51];
int ocjena[2];
} student;
...
student* studenti;
char s1[51];
char s2[51];
int i, j, n=0, o;
...
while(fscanf(in1, "%[^;];%[^;];%d ", s1, s2, &o)==3)
{
studenti=(student*)realloc(studenti, (++n)*sizeof(student));
strcpy(studenti[n-1].ime, s1);
(tu prestaje radit u prvom prolazu petlje)
strcpy(studenti[n-1].prezime, s2);
studenti[n-1].ocjena[0]=o;
studenti[n-1].ocjena[1]=0;
}
...
|
EDIT: Mislim da sam shvatila. Nisam inicijalizirala studenti na NULL.
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 13:28 sub, 13. 6. 2015 Naslov: |
|
|
Da, cini se da je to bio problem.
Jedna opaska: mozda izbjegavati varijablu "[tt]o[/tt]" jer je jako slicna nuli, sto moze prouzrociti bugove koje je jako tesko naci. Nazovi to "[tt]ocj[/tt]", "[tt]ocjena[/tt]", ili tako nekako.
Da, cini se da je to bio problem.
Jedna opaska: mozda izbjegavati varijablu "o" jer je jako slicna nuli, sto moze prouzrociti bugove koje je jako tesko naci. Nazovi to "ocj", "ocjena", ili tako nekako.
_________________ 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] |
|
pubava Forumaš(ica)
Pridružen/a: 08. 10. 2014. (13:47:07) Postovi: (A)16
|
|
[Vrh] |
|
AGB Forumaš(ica)
Pridružen/a: 03. 04. 2017. (11:40:10) Postovi: (2)16
|
Postano: 11:46 pon, 3. 4. 2017 Naslov: |
|
|
Ako netko ima vremena možete i molim vas ovo pogledati i reći mi gdje sam pogriješila? To je zadatak iz aplikacije za zadaće i kaže da je netočno za input: 15 -47 -59 -39 -45 -50 -15 -65 -54 -64 -24 -15 -67 -48 -69 -64.
[quote]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:
M[i][j]=(−3M[i−1][j]−5M[i][j+1]) mod 2897604,
gdje mod označava nenegativni ostatak pri dijeljenju lijevog broja s desnim. Program treba ispisati elemente posljednjeg retka matrice M (ispisane brojeve odvojite razmakom).[/quote]
[code:1]#include <stdio.h>
void f(int a[17][17], int n)
{
int i, j;
for(i = 1; i < n; i++)
for(j = i-1; j >= 0; j--)
{
a[i][j] = ((-3)*a[i-1][j]+(-5)*a[i][j+1]) % 2897604;
if(a[i][j] < 0) a[i][j] *= (-1);
}
}
int main()
{
int i, j, n, niz[17][17] = {{0}};
scanf("%d", &n);
for(i = 0; i < n; i++)
scanf("%d", &niz[i][i]);
f(niz, n);
i = n-1;
for(j = 0; j < n; j++)
printf("%d ", niz[i][j]);
return 0;
}
[/code:1]
Ako netko ima vremena možete i molim vas ovo pogledati i reći mi gdje sam pogriješila? To je zadatak iz aplikacije za zadaće i kaže da je netočno za input: 15 -47 -59 -39 -45 -50 -15 -65 -54 -64 -24 -15 -67 -48 -69 -64.
Citat: | 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:
M[i][j]=(−3M[i−1][j]−5M[i][j+1]) mod 2897604,
gdje mod označava nenegativni ostatak pri dijeljenju lijevog broja s desnim. Program treba ispisati elemente posljednjeg retka matrice M (ispisane brojeve odvojite razmakom). |
Kod: | #include <stdio.h>
void f(int a[17][17], int n)
{
int i, j;
for(i = 1; i < n; i++)
for(j = i-1; j >= 0; j--)
{
a[i][j] = ((-3)*a[i-1][j]+(-5)*a[i][j+1]) % 2897604;
if(a[i][j] < 0) a[i][j] *= (-1);
}
}
int main()
{
int i, j, n, niz[17][17] = {{0}};
scanf("%d", &n);
for(i = 0; i < n; i++)
scanf("%d", &niz[i][i]);
f(niz, n);
i = n-1;
for(j = 0; j < n; j++)
printf("%d ", niz[i][j]);
return 0;
}
|
|
|
[Vrh] |
|
mdoko Forumaš(ica)
Pridružen/a: 30. 11. 2002. (22:17:12) Postovi: (71A)16
Spol:
Lokacija: Heriot-Watt University, Edinburgh
|
|
[Vrh] |
|
AGB Forumaš(ica)
Pridružen/a: 03. 04. 2017. (11:40:10) Postovi: (2)16
|
|
[Vrh] |
|
|