NYOJ484 The Famous Clock

来源:互联网 发布:win7 激活软件 编辑:程序博客网 时间:2024/05/16 07:38

The Famous Clock

时间限制:1000 ms  |  内存限制:65535 KB
难度:1
描述

Mr. B, Mr. G and Mr. M are now in Warsaw, Poland, for the 2012’s ACM-ICPC World Finals Contest. They’ve decided to take a 5 hours training every day before the contest. Also, they plan to start training at 10:00 each day since the World Final Contest will do so. The scenery in Warsaw is so attractive that Mr. B would always like to take a walk outside for a while after breakfast. However, Mr. B have to go back before training starts, otherwise his teammates will be annoyed. Here is a problem: Mr. B does not have a watch. In order to know the exact time, he has bought a new watch in Warsaw, but all the numbers on that watch are represented in Roman Numerals. Mr. B cannot understand such kind of numbers. Can you translate for him?

输入
Each test case contains a single line indicating a Roman Numerals that to be translated. All the numbers can be found on clocks. That is, each number in the input represents an integer between 1 and 12. Roman Numerals are expressed by strings consisting of uppercase ‘I’, ‘V’ and ‘X’. See the sample input for further information.
输出
For each test case, display a single line containing a decimal number corresponding to the given Roman Numerals.
样例输入
IIIIIIIVVVIVIIVIIIIXXXIXII
样例输出
Case 1: 1Case 2: 2Case 3: 3Case 4: 4Case 5: 5Case 6: 6Case 7: 7Case 8: 8Case 9: 9Case 10: 10Case 11: 11Case 12: 12
题目大意:

Mr.B先生买了块手表,但手表上显示的是罗马数字,请编程将输入一个罗马数字将其转换为阿拉伯数字。

思想:

这道题直接用数组实现,定义一个二维数组a[N][],用for循环遍历每一个数组元素,如果字符串经比较相等,则输出结果。

代码实现:

#include <stdio.h>#include <string.h>int main(void){char a[12][5]={"I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII"};char  b[12];int n=0,i;while(~scanf("%s",b)){n++;for(i=0;i<12;i++){if(strcmp(a[i],b)==0)//a是指向 5个元素 数组的指针 {printf("Case %d: %d\n",n,i+1);}}}return 0;} 


做题心得:

1.学会用数组解决问题

2.字符串比较函数: strcmp

     用法:int    strcmp(char  * str1,char *str2);

    如果str1>str2,函数返回值>0;

    如果两串相等,函数返回值为0.

    


0 0