1014ホームズの予定(20分)
シャーロックホームズは奇妙な注意を受けた:我々はそれを満たしています!S&hgsfdk D&Hyscvnm 3485djDkxh4hhGE 2984akDfkkkkggEdsb。同じ大文字(大文字と小文字を区別区別)の最初の文字列の前二つは最初の4つの文字であるため、探偵はすぐにDの時間にその実際に奇妙な文字化けの予定日(木)14:04のメモを、実現します代表木曜日2が同じ文字のEであり、それは1つが9までの数字0によって夜11時00分まで0:00となるように(アルファベットの最初の5つの文字、14時間の代表的な一日であり、そしてNの大文字示されている);文字Sの同じ文字列の最初の二つの後ろ4位(0から数えて)最初の4分の代表で現れます。さて、文字列の2組を与えられた、助けてくださいホームズは、予定の時間をデコード。
入力フォーマット:
入力ライン4は、4つの非空、スペースなしに与えられ、列60の長さを超えません。
出力フォーマット:
行の出力予定時間、フォーマットDAY HH:MON =月曜日、水曜日のための火曜日、WEDための火が、木が木曜日発現していることが週DAY 3文字の略語ですMM、FRI手段上の金曜日、土曜日のための土、日曜日のための日 話題の保証に各テストのためのユニークな解の存在を入力します。
サンプル入力:
3485djDkxh4hhGE
2984akDfkkkkggEdsb
S&hgsfdk
D&Hyscvnm
出力例:
木曜午後二時04分
124テストポイント間違った答えは、長い時間を見て、最終的にはアウトに変更、元は愚かな間違いなく、ASCIIコード番号(コードのカウント時間、ライン25)のデジタル交換価値の有罪である¯□¯||
このそれは上げる必要がある多くのピットの質問、私は話をしたくないポイントに注意を払う、兄のコードの多くを見て、感じて、非常に長い書かれたが、ポインタに精通ポインタができ、それが大幅にコードの量を簡素化することができます。
#include <stdio.h>
int main()
{
int d,b=0,m,h;
char a[4][61];
for(int i=0;i<4;i++)
gets(a[i]);
for(int j=0;j<60;j++)
{
if(a[0][j]>='A' && a[0][j]<='G' && a[1][j]==a[0][j] && b==0)
{
d=a[0][j]-'A'+1;
b++;
continue;
}
if(b==1 && a[1][j]==a[0][j] )
{
if(a[0][j]>='A' && a[0][j]<='N')
{
h=a[0][j]-'A'+10;
break;
}
if(a[0][j]>='0' && a[0][j]<='9')
{
h=a[0][j]-'0';
break;
}
}
}
for(int k=0;k<60;k++)
{
if( (a[2][k]>='A' && a[2][k]<='Z') || (a[2][k]>='a' && a[2][k]<='z') && a[2][k]==a[3][k])
{
m=k;
break;
}
}
switch(d)
{
case 1:printf("MON ");break;
case 2:printf("TUE ");break;
case 3:printf("WED ");break;
case 4:printf("THU ");break;
case 5:printf("FRI ");break;
case 6:printf("SAT ");break;
case 7:printf("SUN ");break;
}
printf("%02d:%02d\n",h,m);
return 0;
}
/*测试点124答案错误,看了半天,终于改出来了,原来是犯了低级错误,没把数字的ASCII码换回数字的数值(算小时的代码里,第25行) ̄□ ̄||*/
/*注意的点我不想讲了,看了很多大佬的代码,感觉自己写得很冗长,有待提高吧,对指针熟悉的可以用指针,可以大大简化代码量。*/