95.将阿拉伯数字转换为罗马数字 将大于0小于1000的阿拉伯数字转换为罗马数字。阿拉伯数字与罗马数字的对应关系如下:

*问题分析与算法设计 题目中给出了阿拉伯数字与罗马数字的对应关系,题中的数字转换实际上就是查表翻译。即将整数的百、十、个位依次从整数中分解出来,查找表中相应的行后输出对应的字符。 *程序与程序设计 #include<stdio.h> void main() { static char *a[][10]={"","I","II","III","IV","V","VI","VII","VIII","IX" "","X","XX","XXX","XL","L","LX","LXX","LXXX","XCC", "","C","CC","CCC","CD","D","DC","DCC","DCCC","CM" }; /*建立对照表*/ int n,t,i,m; printf("Please enter number:"); scanf("%d",&n); /*输入整数*/ printf("%d=",n); for(m=0,i=1000;m<3;m++,i/=10) { t=(n%i)/(i/10); /*从高位向低位依次取各位的数字*/ printf("%s",a[2-m][t]); /*通过对照表翻译输出*/ } printf("\n"); }
*运行结果 1. Please enter number:863 863=DCCCLXIII 2. Please enter number: 256 256=CCLVI 3. Please enter number:355 355=CCCLV 4. Please enter number:522 522=DXXII 5. Please enter number:15 15=XV
*思考题 输入正整数N,产生对应的英文数字符串并输出,例如: 1 ONE 2 TWO 3 THREE 10 TEN 11 ELEVEN 135 ONE HUNDRED THIRTY FIVE
|