2010年1月26日 星期二

Problem 10082 WERTYU,修正錯字

Problem 10082 是要將打錯的字修正回來。

常見的打字錯誤就是手擺到不對的位置,此題很顯然地手是擺到右邊一格鍵上,首先,我們必須建立一個函式來處理這些錯誤的字元並修正,只需用到 if-else 判斷式就可以了。

函式區段程式碼如下:

char Correct (char ch)
{
if (ch == '1') return '`';
else if (ch == '2') return '1';
else if (ch == '3') return '2';
else if (ch == '4') return '3';
else if (ch == '5') return '4';
else if (ch == '6') return '5';
else if (ch == '7') return '6';
else if (ch == '8') return '7';
else if (ch == '9') return '8';
else if (ch == '0') return '9';
else if (ch == '-') return '0';
.....
.....
}

主程式內只需要將每個字元丟入函式修正後輸出即可。

主程式區段程式碼如下:
while(1) {
char str[100] = {"\0"};
int i = 0;
gets(str);
if(str[0]=='\0') break;
for (i = 0; str[i]; i ++)
printf("%c", Correct(str[i]));
printf("\n");
}
By David.K

p10082題目連結
回ACM題庫目錄
回首頁

沒有留言: