Codebar 程式酒吧

一座輕鬆學習程式的酒吧

0%

a065. 提款卡密碼

題目連結

https://zerojudge.tw/ShowProblem?problemid=a065

解題思路

根據題意,7個大寫字母之間的「距離」共6個,即為提款卡密碼。我們可以利用ASCII碼將字母轉為對應的數值,進而求出兩字母間的差值,其絕對值即為「距離」。

注意事項

本程式碼使用了abs()函式對參數求絕對值。由於abs()函式並非標準函式庫裡的函式,使用前須引用 <math.h> 函式庫。

程式碼:C語言

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <math.h>
int main() {
//宣告並讀取字元陣列password,代表輸入的7個相連的大寫英文字母
/*注意以字串形式讀取輸入,再存進字元陣列的話,最後一碼會是空字元。
因此若要存的字串有7單位長,宣告的字元陣列長度必須在8單位以上*/
char password[8];
scanf("%s", password);
//用for迴圈跑前6個英文字母,輸出他們和下一個英文字母的「距離」,即為提款卡密碼
for(int i = 0 ; i < 6 ; i++)
printf("%d", abs(password[i]-password[i+1]));
return 0;
}