罗马数字到十进制转换罗马数字到十进制转换
我们在以前学了十进制和n进制之间的转换无非就是迭代相乘和迭代相除的思想,而谭明金
和俞海英所共同编组的c语言程序设计实例精粹里面有一章节就提到了罗马数字和十进制的
转换。
这是一本不错的书,在此,向大家推荐。
书上终点介绍了如何从十进制转换为罗马数制的程序代码,而我今天向大家介绍的是如果从
罗马数制转换为十进制。
程序如下。
有可能很多人问num和i究竟代表什么。
num代表的是罗马数字在字符串中的位数
i表示迭代想加求最后的数字之和的一个变量。
这两个本身的意义弄反了,如果没有办法理解,...
罗马数字到十进制转换
我们在以前学了十进制和n进制之间的转换无非就是迭代相乘和迭代相除的思想,而谭明金
和俞海英所共同编组的c语言程序
实例精粹里面有一章节就提到了罗马数字和十进制的
转换。
这是一本不错的书,在此,向大家推荐。
书上终点介绍了如何从十进制转换为罗马数制的程序代码,而我今天向大家介绍的是如果从
罗马数制转换为十进制。
程序如下。
有可能很多人问num和i究竟代
什么。
num代表的是罗马数字在字符串中的位数
i表示迭代想加求最后的数字之和的一个变量。
这两个本身的意义弄反了,如果没有办法理解,可以把num和i字母互相调换,可以更容易
理解程序的内容。
#include
int main()
{
char roma[10];//罗马字母所存放的数组
int num,i,first,next;
printf("please input a roma number:\n");
scanf("%s",roma);//输入罗马进制
num=0;
i=0;
while(roma[num]!=0)//循环判断罗马进制
{
if(roma[num]=='I')//我在这里定义了两种变量,一个是first,一个是next,分别指向
第一个数字,和第一个数字的后面一个数字.用来比较,如果
{//第一个数字大于后一个数字,则做加法运算
first=1;//如果前一个数字小于后一个数字,则做减法运算
}
if(roma[num]=='V')
{
first=5;
}
if(roma[num]=='X')
{
first=10;
}
if(roma[num]=='L')
{
first=50;
}
if(roma[num]=='C')
{
first=100;
}
if(roma[num]=='D')
{
first=500;
}
if(roma[num]=='M')
{
first=1000;
}
if(roma[num+1]=='I')
{
next=1;
}
if(roma[num+1]=='V')
{
next=5;
}
if(roma[num+1]=='X')
{
next=10;
}
if(roma[num+1]=='L')
{
next=50;
}
if(roma[num+1]=='C')
{
next=100;
}
if(roma[num+1]=='D')
{
next=500;
}
if(roma[num+1]=='M')
{
next=1000;
}
if(firstnext)
{
i=i+first;//加法运算
}
first=0;
next=0;//first和next其实也可以不用,可有可无
num++;
}
printf("The roma to ten is \n%4d\n",i);//输出转换后的十进制
return 0;
}
本文档为【罗马数字到十进制转换】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。