rain87
Advanced Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Ndr3w Код: #include <stdio.h> #include <string.h> #define NVALS 13 void main() { puts("Введите исходное число (1..1999) арабскими цифрами:"); int n; scanf("%d",&n); if(n<1||n>1999) { puts("Неверно введено число"); return; } unsigned int vals[NVALS]={1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000}; char *roms[NVALS]={"I","IV","V","IX","X","XL","L","XC","C","CD","D","CM","M"}; int b=NVALS-1; char res[10]={0}; while(n) { while(vals[b]>n)b--; strcat(res,roms[b]); n-=vals[b]; } puts(res); FILE *f=fopen("output.txt","w"); if(!f) { puts("Ошибка создания файла output.txt"); return; } fputs(res,f); fclose(f); } | примечания программа не совсем верно выводит числа вида 999, 1999 (надо IM, MIM, а она выведет CMXCIX, MCMXCIX - формально это тоже правильно, но только формально ) код не мой, а честно переведён с пасовского кода, найденного на forum.vingrad.ru (ссылку дать не могу, ибо нашёл этот код только в кеше гугля) |