Pomoć oko zadatka
Select messages from
# through # FAQ
[/[Print]\]
Idite na Prethodno  1, 2  :| |:
Forum@DeGiorgi -> Programiranje 1 i 2

#21:  Autor/ica: pubava PostPostano: 6:31 uto, 9. 6. 2015
    —
Da, shvaćam. Stavila sam if(prvi) ispred i sad sve radi. Hvala! Smile

#22:  Autor/ica: pubava PostPostano: 21:52 pet, 12. 6. 2015
    —
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ć? Smile

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. Embarassed

#23:  Autor/ica: vsegoLokacija: /sbin/init PostPostano: 13:28 sub, 13. 6. 2015
    —
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.

#24:  Autor/ica: pubava PostPostano: 17:31 sub, 13. 6. 2015
    —
Budem, hvala Smile To i inace radim, ali sam bila malo lijena ovaj put. Razz

#25:  Autor/ica: AGB PostPostano: 11:46 pon, 3. 4. 2017
    —
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;
}

#26:  Autor/ica: mdokoLokacija: Heriot-Watt University, Edinburgh PostPostano: 13:22 pon, 3. 4. 2017
    —
AGB (napisa):

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.

Kod:
a[i][j] = ((-3)*a[i-1][j]+(-5)*a[i][j+1]) % 2897604;
            if(a[i][j] < 0) a[i][j] *= (-1);


Problem je u tome to pogrešno interpretiraš što znači "nenegativni ostatak pri dijeljenju". Ono što se pod tim misli u zadatku je: nenegativni ostatak pri dijeljenju a s b je najmanji nenegativni cijeli broj d za koji postoji neki cijeli broj k takav da je k * b + d = a.

Primjer: -1 mod 10 = 9, tj. (nenegativni) ostatak pri dijeljenju broja -1 s 10 je 9.

Pogledaj sad što C kaže za (-1) % 10.
Kod:
#include <stdio.h>

int main() {
  printf("%d", (-1) % 10); /* Ovo će ispisati -1 */
  return 0;
}


Općenito, za C-ovski operator % vrijedi (-a) % b == -(a % b).


Vidiš li sad u čemu je problem?

#27:  Autor/ica: AGB PostPostano: 13:53 pon, 3. 4. 2017
    —
Shvatila sam sada, puno hvala! Smile



Forum@DeGiorgi -> Programiranje 1 i 2


output generated using printer-friendly topic mod. Vremenska zona: GMT + 01:00.

Idite na Prethodno  1, 2  :| |:
Stranica 2 / 2.

Powered by phpBB © 2001,2002 phpBB Group
Theme created by Vjacheslav Trushkin