Apie | Visos naujienos | Straipsniai | RSS | Reklama | Kontaktai
 

Prisijungti

Vartotojo vardas:
Slaptažodis:
Prijungti mane automatiškai kiekvieno apsilankymo metu

Jūsų požiūris

Aktyvios diskusijos

Ieškoti forume


Išsami paieška

Dabar forume

[ Administratorius ]
[ Moderatorius ]

Daugiau

C - Ilgiausio zodzio radimas, salinimas. (Padekit)

 
Pradėti naują temą   Atsakyti  pranešimą    Pagrindinis puslapis -> Programavimas
Rodyti ankstesnę temą :: Rodyti sekančią temą  
Pranešimas Autorius
PranešimasParašytas: Tr. 05 18, 2011 19:42    Rašyti temą: C - Ilgiausio zodzio radimas, salinimas. (Padekit) Atsakyti su citata

Taigi, uzduotis gan aiski:

Parašyti programą, kurią sudarytų keletas funkcijų, kurios:

a. Iš duomenų failo nuskaito tekstą, kurį sudaro du sakiniai;
b. Suranda ilgiausius vienodus žodžius, kurie yra abiejuose sakiniuose;
c. Ištrina ilgiausius žodžius iš abiejų sakinių;
d. Visi rezultatai išvedami į ekraną ir rezultatų failą.

Lauzau galva ir nesugalvoju kaip surasti bei istrinti ilgiausius zodzius...

Kolkas ką turiu tai sakyniu sudeliojimas į atskirus masyvus:

#include <stdio.h>
#include <string.h>

/*****************************************************************/

void skaityti_sakyni(char sakinys[], FILE *fp)
{
int i = 0;
char raide;

do
{
fscanf(fp, "%c", &raide);
sakinys[i] = raide;
i++;
}
while(raide !='.');
}
/*****************************************************************/
main()
{
char raide, sakinys1[100]=" ", sakinys2[100]=" ";
int i=0;
FILE *fp;


if((fp = fopen("sakyniai.txt","r")) == NULL)
{ printf("\nError: File couldn't be opened (1).\n"); exit(-1); }

skaityti_sakyni(sakinys1, fp); fscanf(fp, "%c", &raide);
skaityti_sakyni(sakinys2, fp);
rewind(fp);

printf("%s%s\n\n", sakinys1, sakinys2);
return 0;
}

Gal yra pasiulimu?? Ideju???
Klonke



Prisijungė: 2010 11 09
Žinutės: 18
Miestas: Panevėžys

Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje Skype adresas
Atgal į viršų
PranešimasParašytas: Kv. 05 19, 2011 22:01    Rašyti temą: Atsakyti su citata

b) Dabar reikia skaityti po viena zodi is vieno sakinio ir ieskoti to zodzio antrajame sakinyje, jei randi isiminimui viename kintamajame(zodis_max) issaugai pati zodi, o kitame jo ilgi (ilgis_max).
Tada imi antraji zodi is pirmojo sakinio ir vel ieskai jo antrajame sakinyje - jei randi palygini pries tai buvusio isiminto zodzio ilgi(ilgis_max) su dabar atrasto zodzio ilgiu. Jei dabar atrastas ilgesnis, tada reiksme issaugai kintamajame (ilgis_max), o pati zodi(zodis_max). Ir taip imi is eiles po viena visus pirmojo sakinio zodzius ir ieskai tokiu pat antrajame sakinyje, pabaigoje atspausdini zodis_max ir ilgis_max reiksmes.

c)
Principas toks pat kaip b) dalyje, pirma surandi ilgiausia zodi, o paskui to surasto zodzio ieskai abejuose sakiniuose ir juos istrini. Arba gali papildomai kiekvienu radimo atveju issisaugoti zodzio pozicijas sakiniuose, kad paskui juos galetum istrinti.
syberex



Prisijungė: 2009 12 08
Žinutės: 190

Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Atgal į viršų
PranešimasParašytas: Kv. 05 19, 2011 22:32    Rašyti temą: Atsakyti su citata

Kiek pamenu yra funkcija strlen, bet iš pirmųjų kursų dažniausiai žaidimai būdavo su masyvais.
_________________
Kliūtis pradedame matyti tada, kai nukreipiame žvilgsnį nuo tikslo | Henry Ford
kionig
Moderatorius


Prisijungė: 2009 01 13
Žinutės: 10699
Miestas: Panevėžys

Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Atgal į viršų
Rodyti žinutes nuo ankstesnės:   
Pradėti naują temą   Atsakyti  pranešimą    Pagrindinis puslapis -> Programavimas Visos datos yra GMT + 2 valandos
Puslapis 11
Pereiti :  
Jūs negalite rašyti naujų pranešimų šiame forume
Jūs negalite atsakinti į pranešimus šiame forume
Jūs negalite redaguoti savo pranešimų šiame forume
Jūs negalite ištrinti savo pranešimų šiame forume
Jūs negalite dalyvauti apklausose šiame forume