思路:找到1-100间的特殊区间,使用if语句判断输入的数字是否在这个区间,如果在就减去这个区间最小值给这个数字(比如区间1-3,如果输入3,则3-1=2,把2给需下一次判断的值)然后循环再判断,直到这个值为0。
下边是我写的代码,欢迎各位朋友指点。
1
#include <stdio.h>
2
3
int main()
4
{
5
int digit = 1;
6
int roman;
7
8
while ( digit <= 100 )
9
{
10
printf( "%d\t", digit );
11
roman = digit;
12
13
while ( roman > 0 )
14
{
15
if ( roman == 100 )
16
{
17
printf( "C" );
18
roman -= 100;
19
}
20
else if ( roman < 100 && roman >= 90 )
21
{
22
printf( "XC" );
23
roman -= 90;
24
}
25
else if ( roman < 90 && roman >= 50 )
26
{
27
printf( "L" );
28
roman -= 50;
29
}
30
else if ( roman < 50 && roman >= 49 )
31
{
32
printf( "IL" );
33
roman -= 49;
34
}
35
else if ( roman < 49 && roman >= 40 )
36
{
37
printf( "XL" );
38
roman -= 40;
39
}
40
else if ( roman < 40 && roman >= 10 )
41
{
42
printf( "X" );
43
roman -= 10;
44
}
45
else if ( roman < 10 && roman >= 9 )
46
{
47
printf( "IX" );
48
roman -= 9;
49
}
50
else if ( roman < 9 && roman >= 5 )
51
{
52
printf( "V" );
53
roman -= 5;
54
}
55
else if ( roman < 5 && roman >= 4 )
56
{
57
printf( "IV" );
58
roman -= 4;
59
}
60
else if ( roman < 4 && roman >= 1 )
61
{
62
printf( "I" );
63
roman -= 1;
64
}
65
else
66
printf( "must between 1~100 !" );
67
}
68
69
printf( "\n" );
70
digit++;
71
}
72
return 0;
73
}

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73
