解题思路:
1. 我的代码写的比较繁琐,唯一可取的就是思路清晰
2. 第一步:先找出第一对相同的大写英文字母( 范围可以小一点
,因为是七天,所以范围A- G就行了) ,记录此时的位置
3. 在此位置上找出第二对相同的字符,范围是0 - 9 ,A- N。如果
是0 - 9 的话,可以直接输出ch[ 0 ] [ i] - '0' 。如果是A- N的话,就
输出ch[ 0 ] [ i] - 'A' + 10
4. 在后两个字符串找出第一对相同的字母,可以是大写,也可以
是小写,找到了,直接输出位置就行了
#include <stdio.h>
int main ( )
{
char ch[ 4 ] [ 100 ] , str1[ 7 ] = { 'A' , 'B' , 'C' , 'D' , 'E' , 'F' , 'G' } , s;
char str2[ 7 ] [ 7 ] = { "MON" , "TUE" , "WED" , "THU" , "FRI" , "SAT" , "SUN" } ;
int p= 0 , i, j;
for ( i= 0 ; i< 4 ; i++ )
gets ( ch[ i] ) ;
for ( i= 0 ; ch[ 0 ] [ i] != '\0' ; i++ )
{
if ( ch[ 0 ] [ i] >= 'A' && ch[ 0 ] [ i] <= 'G' )
{
if ( ch[ 0 ] [ i] == ch[ 1 ] [ i] )
{
s= ch[ 0 ] [ i] ;
break ;
}
}
}
j= i;
for ( i= 0 ; i< 7 ; i++ )
{
if ( s== str1[ i] )
{
p= i;
break ;
}
}
printf ( "%s " , str2[ p] ) ;
for ( i= j+ 1 ; ch[ 0 ] [ i] != '\0' ; i++ )
{
if ( ch[ 0 ] [ i] >= '0' && ch[ 0 ] [ i] <= '9' )
{
if ( ch[ 0 ] [ i] == ch[ 1 ] [ i] )
{
printf ( "%02d:" , ch[ 0 ] [ i] - '0' ) ;
break ;
}
}
if ( ch[ 0 ] [ i] >= 'A' && ch[ 0 ] [ i] <= 'N' )
{
if ( ch[ 0 ] [ i] == ch[ 1 ] [ i] )
{
printf ( "%02d:" , ch[ 0 ] [ i] - 'A' + 10 ) ;
break ;
}
}
}
for ( i= 0 ; ch[ 2 ] [ i] != '\0' ; i++ )
{
if ( ( ch[ 2 ] [ i] >= 'a' && ch[ 2 ] [ i] <= 'z' ) || ( ch[ 2 ] [ i] >= 'A' && ch[ 2 ] [ i] <= 'Z' ) )
{
if ( ch[ 2 ] [ i] == ch[ 3 ] [ i] )
{
printf ( "%02d" , i) ;
break ;
}
}
}
return 0 ;
}