找“异数”(C)

定义“异数”:数值序列中包含2~16进制整数,如果序列中有一个数,与序列中其他任何一个数大小都不相等,这个数叫做“异数”

输入:输入数值序列i行(0<i),每一行分别是进制和数值,以"#"分割。如:n#m,n是整数,代表n进制,m是n进制下的数值。输入序列以结束符“END”结束

输出:输出j行(0<j<i),每一行都是输入序列的异数。要求:按照输入系列的原序输出;如果没有异数,输出字符串"None";结束符"END"不用输出

example:

输入:10#2333

   8#4434

   2#100100011101

   16#91D

输出:8#4434

 1 #include<stdio.h>
 2 #include<string.h>
 3 #define Row 20
 4 #define Column 20
 5 
 6 char a[Row][Column];
 7 int b[Row];
 8 
 9 int Read(void)           //将输入各行n#m以字符格式存入二维数组 a[][]
10 {
11     int i=0;
12     while(1)
13     {
14         scanf("%s",a[i]);
15         if(strcmp(a[i],"END")==0)
16             break;
17         else
18             i++;
19     }
20     return i;
21 }
22 
23 int Converse(void)  //将a[][]中各行转换为十进制放入b[] 
24 {
25     int r=Read();
26     int i,j;
27     int len,x;
28     int k,t;
29     for(i=0;i<r;i++)
30     {
31         int n=0,m=0;
32         len=strlen(a[i]);
33         for(j=0;j<len;j++)
34         {
35             if(a[i][j]=='#')
36                 x=j;
37         }
38         for(k=0;k<x;k++)
39         {
40             n*=10;
41             n+=(a[i][k]-'0');
42         }
43         for(t=x+1;t<len;t++)
44         {
45             m*=n;
46             if(a[i][t]-'0'>9)
47                 m+=(a[i][t]-'A'+10);
48             else
49                 m+=(a[i][t]-'0');
50         }
51         b[i]=m;
52     }
53     return r;
54 }
55 
56 void Check(void)        //在b[]中找出异数输出,没有则输出None 
57 {
58     int r=Converse();
59     int k,t;
60     if(r!=1)
61     {
62         int n=0;
63         for(k=0;k<r;k++)
64         {
65             for(t=0;t<r;t++)
66             {
67                 if(k!=t && b[k]==b[t])
68                 {
69                     n+=1;
70                     break;
71                 }
72             }
73             if(t==r)
74                 printf("%s\n",a[k]);
75         }
76         if(n==r)
77             printf("%s\n","None");
78     }
79     else
80         printf("%s\n",a[0]);
81 }
82 
83 int main(void)
84 {
85     Check();
86     return 0;
87 }
View Code

猜你喜欢

转载自www.cnblogs.com/bigdapi/p/9706128.html