2007年第8期编程点将台
来源:互联网 发布:日本食玩包邮淘宝 编辑:程序博客网 时间:2024/05/16 13:14
将1到1000的阿拉伯数字转换为罗马数字
源程序如下所示:
#include<stdio.h>
char c[3][3]={{'I','V','X'},{'X','L','C'},{'C','D','M'}};
void convert(int temp,int i){
switch(temp){
case 0:
break;
case 1:
printf("%c",c[2-i][0]);
break;
case 2:
printf("%c%c",c[2-i][0],c[2-i][0]);
break;
case 3:
printf("%c%c%c",c[2-i][0],c[2-i][0],c[2-i][0]);
break;
case 4:
printf("%c%c",c[2-i][0],c[2-i][1]);
break;
case 5:
printf("%c",c[2-i][1]);
break;
case 6:
printf("%c%c",c[2-i][1],c[2-i][0]);
break;
case 7:
printf("%c%c%c",c[2-i][1],c[2-i][0],c[2-i][0]);
break;
case 8:
printf("%c%c%c%c",c[2-i][1],c[2-i][0],c[2-i][0],c[2-i][0]);
break;
default:
printf("%c%c",c[2-i][0],c[2-i][2]);
break;
}
}
main()
{
int i,input,n,temp;
int k[3]={0,0,0};
int m[3]={100,10,1};
printf("Input a integer from 0 to 1000:");
scanf("%d",&input);
n=input;
if(n<0||n>1000)
printf("Please input a integer between 0 and 1000/n");
else if(n==1000)
printf(" Bingo! 1000 convert to Roman numeral is ");
else{
printf(" Bingo! %d convert to Roman numeral is ",n);
for(i=0;i<3;i++){
k[i]=(n-100*k[0]-10*k[1])/m[i];
temp=k[i];
convert(temp,i);
}
}
printf("/n");
}
- 2007年第8期编程点将台
- 2007年第10期编程点将台
- 2007年第12期编程点将台
- 《电脑报》第7期编程点将台的题目,很简单,留个纪念吧。呵呵
- 电脑报第17期点将台题目的解答
- 电脑报2013年第8期
- 多媒体编程(66期第九天)
- Web开发电子期刊2009年第8期(总第36期)
- Rational Edge 电子月刊中文版 2007 年第 2 期
- 电脑报2007年第52期xp经典故障
- 华章IT图书书讯(2011年第8期)
- 《程序员》2011年第8期精彩内容导读:海量数据
- 华章IT图书书讯(2012年第8期)
- 第11期 《微微风簇浪》 2016年8月刊
- 第14期《成长之路》2017年8月刊
- 信息安全快讯2017年8月第1期
- 第11期 《技术集锦》 2017年8月刊
- JAVA编程思想:第11章 运行期类型鉴定
- struts-console 在eclips里的配置
- [合集]the road of x264 setting optimization (mostly from doom9)
- )))))))))))))
- REALbasic 2006 简介
- Rich Client技术简介
- 2007年第8期编程点将台
- 我的大学
- 你去
- OOP Principles
- Desperado
- 学习的混沌法则
- C++学习感想2
- 整数划分问题
- Command模式