medium Temat założony przez niniejszego użytkownika |
problem konwersji ciagu cyfr » 2014-10-14 20:17:13 #include <stdio.h> #include <fcntl.h> #include <stdlib.h> #include <conio.h>
void changeToRoman(int a) { int s; int d; int j; int t; int plik2; plik2 = open("liczbyRzymskie.txt",O_WRONLY|O_APPEND); if(plik2 == -1) { perror("Blad otwarcia pliku!"); exit(1); } if(a!=0) { j = a%10; d = (a/10)%10; s = a/100; t = a/1000; switch(t) { case 1: write (plik2,"M",1); break; case 2: write (plik2,"MM",2); break; case 3: write (plik2,"MMM",3); break; } switch(s) { case 1: write (plik2,"C",1); break; case 2: write (plik2,"CC",2); break; case 3: write (plik2,"CCC",3); break; case 4: write (plik2,"CD",2); break; case 5: write (plik2,"D",1); break; case 6: write (plik2,"DC",2); break; case 7: write (plik2,"DCC",3); break; case 8: write (plik2,"DCCC",4); break; case 9: write (plik2,"CM",2); break; } switch(d) { case 1: write (plik2,"X",1); break; case 2: write (plik2,"XX",2); break; case 3: write (plik2,"XXX",3); break; case 4: write (plik2,"XL",2); break; case 5: write (plik2,"L",1); break; case 6: write (plik2,"LX",2); break; case 7: write (plik2,"LXX",3); break; case 8: write (plik2,"LXXX",4); break; case 9: write (plik2,"XC",2); break; } switch(j) { case 1: write (plik2,"I",1); break; case 2: write (plik2,"II",2); break; case 3: write (plik2,"III",3); break; case 4: write (plik2,"IV",2); break; case 5: write (plik2,"V",1); break; case 6: write (plik2,"VI",2); break; case 7: write (plik2,"VII",3); break; case 8: write (plik2,"VIII",4); break; case 9: write (plik2,"IX",2); break; } write (plik2," ",1); close(plik2); } }
int main() { int plik; int l; char znak[15]; plik = open("liczbyArabskie.txt", O_RDONLY); if(plik == -1) { perror("Blad otwarcia pliku!"); exit(1); } int size = 0; while((size=read(plik, znak,4))>0) { l = atoi(znak); if(l > 0) { changeToRoman(l); } } int i=0; scanf("%c", &i); return 0; }
W tekscie wejsciowym mam podane: ghubhj 4 ijhiubgui 2 ikgbiu 1242 412 ijhiou 63 uighbi 2014 iubujbk 1 555 5
A na wyjsciu wyskakuje: MXLII CDXII LXIII XIV DLV DLV
Co robie nie tak :/ ?
|