Preskoči na sadržaj
Ista raja. Nova runda.
GAMERZ.ba — REBORN
Pitanje Riješeno 100 bodova

Zadatak iz C jezika

191 pregled · 2 odgovora · otvorena 27.06.2010. u 19:08

Napisati program koji sa tastature ucitava ime neke tekstualne datoteke a zatim prebroji kolkiko se puta pojavljuju pojedina mala I velika slova I sortoira po broju pojavljivanja ((od onih koji se najvise pojavljuju prema onim koji se najmanje pojavljuje)Na ekranu stampati u parovima:slovo I broj pojavljivanja tog slova.

Ko uradi 100 bodova.

Evo ja sam pokusao nesto ali tu sam stao nisam dalje znao.

Pocetnik sam pa sam nesto kombinovao ali mi stampa samo jedno slovo iz ocitane datoteke.


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

main()
{

int i, zn, velika[26],mala[26];

char ime_datoteke[40];
char str[40];
gets(ime_datoteke);
FILE *fl;
fl=fopen(ime_datoteke,"r" ) ;
if(fl==NULL)
{
printf("Unesena datoteka ne postoji" ) ;
exit(0);
}
while((zn=fgetc(fl))!=EOF)
{

for (i=0; i<26; mala[i++]=0);
for (i=0; i<26; velika[i++]=0);

if (isupper (zn)) velika[zn-'A']++;
if (islower (zn)) mala[zn-'a']++;



for (i=0; i<26; i++)
if (mala[i]) printf ("%c %3d\n", i+'a', mala[i]);
for (i=0; i<26; i++)
if (velika[i]) printf ("%c %3d\n %",i+'A',velika[i]);
fclose(fl);
system("Pause" ) ;
}
}
Rješenje
#include <stdio.h>
#include <string.h>

int main () {
char ulaz[256];
scanf("%s",ulaz);
int slova[256],broj_slova[256];
for (int i=0;i<256;i++) {
broj_slova[i]=0;
slova[i]=i;
}
for (int i=0;i<strlen(ulaz);i++) {
broj_slova[ulaz[i]]++;
}
for (int i=0;i<256;i++) {
for (int j=0;j<256;j++) {
if (broj_slova[i]>broj_slova[j]) {
int temp=broj_slova[i];
broj_slova[i]=broj_slova[j];
broj_slova[j]=temp;
temp=slova[i];
slova[i]=slova[j];
slova[j]=temp;
}
}
}
for (int i=0;i<256;i++) {
if (broj_slova[i]!=0) printf("Slovo '%c' se ponavlja %d puta\n",(char)slova[i],broj_slova[i]);
}
return 0;
}

http://rapidshare.com/files/403540470/Slova.c.html

:)
Nije bas to trebalo, ali svejedno mi ne treba vise, a zbog truda evo ti bodovi.

Prijavi se da bi odgovorio/la na ovu temu.