Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 5 odgovora
  • 2.653 pregleda

Najnovija ↓

[Zadatak] Konverzija podataka iz datoteke u brojeve 27.11.2008. u 12:31 · pre 218 meseci #1
Trebami ideja kako najoptimalnije rešiti sledeći zadatak: Dobijem u tekstualnom fajlu brojeve

Code:
14 12 111
2 34


Trebam obaviti odredjene operacije nad brojevima, recimo (14+12+111)/(2*34), to jedan od primera i napisati rezultat. Takodje pod pretpostavkom da broj nije veći od trocifrenog.
Jasno mi je da bih dobio broj od chara moram oduzeti '0', i lako je odraditi ovo kad su jednocifreni, medjutim kad su dvocifreni ili trocifreni treba nam 2 odnosno 3 promenjive, gde ćemo drugi množiti sa 10 i sabirati sa prvom a trećom množiti sa 100 i sabirati, ako je u pitanju trocifreni broj... pa sve tako dok c=='\n' i ne promenimo operaciju (u primeru množenje)...
Učitavanje treba odraditi petljom while svakog karaktera posebno (primer while((c=getchar() )!=EOF).....
Pa vas molim ako mi može neko pomoći u realizaciji samog koda, ili postoji neki algoritam ?
Re: [Zadatak] Konverzija podataka iz datoteke u brojeve 27.11.2008. u 23:54 · pre 218 meseci #2
any?

evo tačno kako glase zadaci

Citat:
1.Za tekstualni file oblika:
12 13 14
1 2 3
izracunati (12+13+14)/(1*2*3). Pretpostaviti da su brojevi maximalno trocifreni.



Citat:
2.Za textualni file oblika

uvod u programiranje
prvi kolokvijum

Izracunati (4+1+13)^sqrt(4+10) gde su brojevi u izrazu duzine reci u textu.
Re: [Zadatak] Konverzija podataka iz datoteke u brojeve 28.11.2008. u 02:17 · pre 218 meseci #3
evo nesto na brzaka
Code:

#include<stdio.h>
int main () {
    FILE *fp;
    int a,b,c,d,e,f;
    if ((fp=fopen("test.txt", "r"))==NULL) {
        printf("\n Dosno je do greske pri otvaranju datoteke");
        exit(-1);

    }
    while (fscanf(fp,"%d %d %d\n %d %d %d\n", &a,&b,&c,&d,&e,&f)==6) {
        printf("%.2f\n", (float)(a+b+c)/(d*e*f));

    }
}
Re: [Zadatak] Konverzija podataka iz datoteke u brojeve 28.11.2008. u 21:11 · pre 218 meseci #4
nisam mislio tako, mora karakter po karakter do EndOfFile (tj. preko tastature ^Z), a fajl se učitava redirekcijom preko command promta
Code:
blabla.exe <ulaz.txt >izlaz.txt


drugim rečima može se posmatrati da je stdio i tastatura, nije to važno, bito je kako te učitane karaktere pretvorim u cele brojeve, a brojevi mogu biti bilo koji, ne mora ove kako su navedeni u zadataku, inače ne bi imalo svrhe.

Re: [Zadatak] Konverzija podataka iz datoteke u brojeve 28.11.2008. u 22:43 · pre 218 meseci
izmenjeno 1 put, poslednji put Miladinovic 29.11.2008. u 01:47
  1. Miladinovic29.11.2008. u 01:47zapis iz teksta poruke
#5
Code:
main(){
    char c;
    int broj = 0, suma = 0, nobegin = 0, line = 1, proizvod = 1;
    while((c=getchar())!=EOF){
        if(isdigit(c)){
            if(!nobegin){
                nobegin = 1;
                broj = c-'0';
            }else{
                broj = broj*10+(c-'0');
            }
        }else if(nobegin){
            nobegin=0;
            if(line==1){
                suma += broj;
            }else if(line==2){
                proizvod *= broj;
            }
            broj = 0;
        }
        if(c=='\n'){
            line++;
        }
    }
    printf("%d:%d",suma, proizvod);
}


U svakom slučaju hvala @emranonline ;)
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme