Zamanında C programlama öğrenmeye başladığım kitaba yine bakıyorum, yapmadığım alıştırmaları yapmak amacıyla. 0-9999 arası sayıları roma rakamlarına çeviren bir program yazınız diyor. aslında döngüleri kullanmamam gerekirdi kitapta o aşamada henüz döngüler anlatılmadığı için ama çözümü çok kısalttığı için kullandım. ilginç olduğunu düşündüğüm için paylaşıyorum.
Kod:#include <stdio.h> #include <stdlib.h> int main(){ int number, i; char *romanNum[11] = {"","I","II","III","IV","V","VI","VII","VIII","IX","X"}; do{ printf("Enter a number between 0-9999 :"); scanf("%d", &number); }while (number < 0 || number > 9999); for (i = 0; number >= 1000; number -= 1000) ++i; if (i > 0) printf("\n%sM", (i > 1 ? romanNum[i] : "")); for (i = 0; number >= 500; number -= 500) ++i; if (i == 1) printf("D"); for (i = 0; number >= 100; number -= 100) ++i; if (i > 0) printf("%sC", (i > 1 ? romanNum[i] : "")); for (i = 0; number >= 50; number -= 50) ++i; if (i == 1) printf("L"); for (i = 0; number >= 10; number -= 10) ++i; if (i > 0) printf("%sX", (i > 1 ? romanNum[i] : "")); printf("%s\n\n", romanNum[number]); system("PAUSE"); return 0; }Kod:Enter a number between 0-9999 :8888 VIIIMDIIICLIIIXVIII


LinkBack URL
About LinkBacks
Alıntı Yaparak Yanıtla



Bookmarks