| | |
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
Autor | Správa |
---|
Registrovaný: 02.05.14 Prihlásený: 18.05.15 Príspevky: 15 Témy: 8 |
caute prosim vas mohli by ste mi poradit ako spravit tento program, nieco mam v tom kode zle len neviem co zadanie: https://www.dropbox.com/s/kjw7adkar76jyqa/6.png?dl=0kod: Kód: #include <stdio.h>
int main() { FILE *sifra; FILE *sprava; char citam_a, citam_b; int poc; int cislo=0; if((sifra=fopen("novy.txt","r"))==NULL) return -1; if((sprava=fopen("znak.txt","r"))==NULL) return -1; citam_a=getc(sprava); citam_b=getc(sifra); while(citam_a!=citam_b)//zistujem sifru { printf("1. while: %d\n",cislo); cislo++; citam_a++; printf("%c\n",citam_a); if(citam_a>'z') citam_a='a'; } printf("Vysledna sifra: %d\n",cislo); while((citam_a=getc(sprava))!=EOF || (citam_b=getc(sifra))!=EOF) { printf("2. while\n"); poc=0; printf("citam_a: %c, citam_b: %c\n",citam_a,citam_b); while(poc!=cislo)//posun nacitane pismeno zo spravy podla sifry { poc++; citam_a++; printf("%c\n",citam_a); if(citam_a>'Z' || citam_a>'z') citam_a='a'; } printf("citam_a: %c, citam_b: %c",citam_a,citam_b); if(citam_a!=citam_b)//pokial sa nerovnaju je zla sifra { printf("Zla sifra\n"); return 0; } } return 0; } zisti pre prve pismeno ze je posun 2 to je ok ale potom to niako blbe diky
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 30.01.2015 18:34 | |
|
Čo znamená "blbne"? Ja tam na pohľad chybu nevidím, daj nejaký ukážkový vstup a výstup.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 02.05.14 Prihlásený: 18.05.15 Príspevky: 15 Témy: 8 | Napísal autor témy TieSTiK: 30.01.2015 18:47 | |
|
no ma to len otestovat ci je to posun napr. o 2 a ked hocivktorom pismene nie je odva vzpise zla sifra no a dal som do obidvoch .txt vsetko dobre tak aby bola dobra sifra ale napise ze je posun o 2 ale vypise zaroven aj zla sifra
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 30.01.2015 19:13 | |
|
Skopíruj sem vstup (obsah súborov) aj výstup z programu včetne tých pomocných výpisov
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 02.05.14 Prihlásený: 18.05.15 Príspevky: 15 Témy: 8 | Napísal autor témy TieSTiK: 30.01.2015 20:14 | |
|
znak.txt Kód: ahojz novy.txt Kód: cjrlb vystup Kód: 1. while: 0 b 1. while: 1 c Vysledna sifra: 2 2. while citam_a: h, citam_b: c i b citam_a: a, citam_b: cZla sifra
|
|
Registrovaný: 28.04.11 Prihlásený: 25.04.24 Príspevky: 296 Témy: 27 Bydlisko: Martin/Brno | Napísal mitko: 30.01.2015 20:31 | |
|
Chyba bude zrejme tu: Kód: while((citam_a=getc(sprava))!=EOF || (citam_b=getc(sifra))!=EOF)
mas tam operator || cize ak sa ti nacita do citam_a tak druha cas podmienky sa vobec nevykona, pretoze je uz splnena, cize ti do citam_b vobec nenacita. // Spojený príspevok Pia 30.01.15 20:35:53A dalsia chyba je tu: Kód: if(citam_a>'Z' || citam_a>'z') citam_a='a';
pozri si http://www.asciitable.com preco ti ta podmienka pre pismeno 'h' vrati true.
|
|
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|