Dotaz k programu v jazyce C
Napsal: ned 2. pro 2007, 18:51
Zdravím místní programátory, dostal jsem za úkol udělat prográmek podle tohoto zadání
Sestavte funkci, která zjistí počet písmen, číslic, tabelátorů a nových řádků ve znakovém souboru. Funkci použijte v programu, který bude číst soubor z vnějšího zařízení
Program už víceméně mám (až na tabelátory a nové řádky) ale chtělo by to odladit, program mi počítá pouze první písmena ve slovech a nedaří se mi to upravit, nemam talent na programování a kdybych nemusel ani se ho neučim ale bohužel musím to přetrpět, proto prosím nějakou hodnou duši aby mi poradila v čem je problém, co upravit. Byl bych vám neskutečně vděčný, zde je zdroják
#include <stdio.h>
#include <conio.h>
#include <math.h>
FILE *f;
int main ()
{
int pocet[256],j,hodnota,pismen,slov;
f=fopen("text.txt","r");
if (f==NULL){printf("soubor se neotevrel\n"); getchar();}
j=0;slov=0;
do {
pocet[j]=0;
j++;
} while (j<256);
while ((hodnota!=EOF)&&((hodnota=getc(f))!=EOF)){
pocet[hodnota]++;
if ((hodnota>='a')&&(hodnota<='z')) {
pismen=1;
while (((hodnota=getc(f))!=EOF)&&((hodnota>='a')&&(hodnota<='z'))) {
pismen++;
}
if (pismen>=2) slov++;
}
}
printf ("\n");
printf ("Pocet jednotlivych cislic:\n");
j=0; do { /* vypis cisel */
printf (" %d(%d)",j,pocet[j+'0']);
j++;
} while (j<10); printf ("\n");
printf ("\n");
printf ("Pocet jednotlivych malych pismen:\n");
j=0; do { /* vypis malych pismen */
printf (" %c(%d)",(char)(j+'a'),pocet[j+'a']);
j++;
} while (j<26); printf ("\n");
printf ("\n");
printf ("Slov %d",slov);
getchar();
getchar();
}
Sestavte funkci, která zjistí počet písmen, číslic, tabelátorů a nových řádků ve znakovém souboru. Funkci použijte v programu, který bude číst soubor z vnějšího zařízení
Program už víceméně mám (až na tabelátory a nové řádky) ale chtělo by to odladit, program mi počítá pouze první písmena ve slovech a nedaří se mi to upravit, nemam talent na programování a kdybych nemusel ani se ho neučim ale bohužel musím to přetrpět, proto prosím nějakou hodnou duši aby mi poradila v čem je problém, co upravit. Byl bych vám neskutečně vděčný, zde je zdroják
#include <stdio.h>
#include <conio.h>
#include <math.h>
FILE *f;
int main ()
{
int pocet[256],j,hodnota,pismen,slov;
f=fopen("text.txt","r");
if (f==NULL){printf("soubor se neotevrel\n"); getchar();}
j=0;slov=0;
do {
pocet[j]=0;
j++;
} while (j<256);
while ((hodnota!=EOF)&&((hodnota=getc(f))!=EOF)){
pocet[hodnota]++;
if ((hodnota>='a')&&(hodnota<='z')) {
pismen=1;
while (((hodnota=getc(f))!=EOF)&&((hodnota>='a')&&(hodnota<='z'))) {
pismen++;
}
if (pismen>=2) slov++;
}
}
printf ("\n");
printf ("Pocet jednotlivych cislic:\n");
j=0; do { /* vypis cisel */
printf (" %d(%d)",j,pocet[j+'0']);
j++;
} while (j<10); printf ("\n");
printf ("\n");
printf ("Pocet jednotlivych malych pismen:\n");
j=0; do { /* vypis malych pismen */
printf (" %c(%d)",(char)(j+'a'),pocet[j+'a']);
j++;
} while (j<26); printf ("\n");
printf ("\n");
printf ("Slov %d",slov);
getchar();
getchar();
}