Kod: |
File *ulaz; int broj; char prvi[20],drugi[20]; ulaz=fopen("dugovi.in","r"); while ( fscanf(ulaz,"%s %s %d\n",prvi,drugi,&broj)==3) { i sad tu pogledat dal u polju struktura već postoje prvi i drugi ako postoje onda im dodat/oduzet broj, ako ne postoje, onda ih kreirat. provjeru dal postoje radiš s nekom fjom koja trči po polju, pa vraća index u polju ak nađe element koji ima to ime (recimo) } |
Drake (napisa): |
hvala puno, predpostavljam da onda ako imena zelim popremati zasebno da napisem fscanf(fp, "%s %s %d", struktura.ime1, struktura.ime2, &struktura.dug); |
Kod: |
while (fscanf(ulaz, "%s %s %d\n", struktura->ime, struktura->prezime, &struktura->broj) == 3)
if (meni_se_podaci_svidjaju(*struktura)) struktura = (tip_strukture*) malloc(sizeof(tip_strukture)); // inace, zanemarim ucitano |
Kod: |
#include <stdio.h>
#include <stdlib.h> typedef struct{ char ime1[20]; char ime2[20]; int dug; } dugovi; int main(){ int i, j, dug,cnt=0, maxdug; char ime1[20], ime2[20], maximalni[20], iname[20],oname[20]; dugovi niz[100]; printf("Unesite ime ulazne datoteke\n"); scanf("%s", iname); FILE *ulaz, *izlaz; ulaz=fopen(iname, "r"); while ( fscanf(ulaz,"%s %s %d\n",ime1,ime2,&dug)==3) { ++cnt; for(i=0;i<cnt;i++){ if(ime1==niz[i].ime1 && ime2==niz[i].ime2){niz[i].dug=niz[i].dug+dug;} if(ime1==niz[i].ime2 && ime2==niz[i].ime1){niz[i].dug=niz[i].dug-dug;} else{niz[cnt].ime1=ime1; niz[cnt].ime2=ime2; niz[cnt].dug=dug;} } } for(i=0;i<cnt-1;i++){ ime1=niz[i].ime1; dug=niz[i].dug; for(j=0;j<cnt;j++){ if(i!=j){ if(ime1==niz[j].ime1)dug=dug+niz[j].dug; if(ime1==niz[j].ime2)dug=dug-niz[j].dug; } } if(i==0){maximalni=ime1; maxdug=dug;} if(dug>maxdug){maxdug=dug; maximalni=ime1;} } printf("%s %d", maximalni, maxdug); scanf(" "); return 0; } |
Kod: |
niz[cnt].ime1=ime1 |
Kod: |
while ( fscanf(ulaz,"%s %s %d\n",ime1,ime2,&dug)==3)
{ ++cnt; for(i=0;i<cnt;i++){ |
output generated using printer-friendly topic mod. Vremenska zona: GMT + 01:00.