輸入乙個以#結束的字串,本題要求濾去所有的非十六進製制字元(不分大小寫),組成乙個新的表示十六進製制數字的字串,然後將其轉換為十進位制數後輸出。如果在第乙個十六進製制字元之前存在字元「-」,則代表該數是負數。
輸入在一行中給出乙個以#結束的非空字串。
在一行中輸出轉換後的十進位制數。題目保證輸出在長整型範圍內。
+-p-xf4+-1!#
-3905
#include #include #include int main()
; int leap = 1 ; //確定第乙個16進製出現之前是負數還是整數
//用於儲存哪些已經過濾掉的16進製制數,第乙個數設定乙個任意數用於確定在16進之前出現的符號是否為負
// 如果第乙個字元仍然沒有改變,則說明還沒遇到16進製制數,若改變,則已經遇到16進製制數
char arr[50]=;
int i = 0 ; //統計當前統計到那個字元,用於arr字元陣列
int j; //後面用於遍歷
char c ;
int sum = 0 ; //統計轉化為十進位制的和
while((c=getchar())!='#')
}for(j = 0 ; j < 22;j++) //遍歷對應的list陣列,如果在陣列裡面就說明是16進製制數
}}/*
到此為止*arr裡面存的是我們挑選出來的十六進製制數
接下來是將十六進製制變成十進位制 */
int k = 0; //用於統計當前位於第幾位,與16位的乘積有關
for(j = i-1;j>=0;j--)
else if (arr[j]>='a'&&arr[j]<='f')
else
k++;
} if(leap) //剛剛確定的是否為正負數
else
return 0;
}
習題7 8 字串轉換成十進位制整數
輸入乙個以 結束的字串,本題要求濾去所有的非十六進製制字元 不分大小寫 組成乙個新的表示十六進製制數字的字串,然後將其轉換為十進位制數後輸出。如果在第乙個十六進製制字元之前存在字元 則代表該數是負數。輸入在一行中給出乙個以 結束的非空字串。在一行中輸出轉換後的十進位制數。題目保證輸出在長整型範圍內。...
習題7 8 字串轉換成十進位制整數
判斷是否是十六進製制字元,是返回1 4int hex to dec char ch 十六進製制字元轉換位十進位制數 5int main void 6 1415 int j 0 16 int count 0 十六進製制字元的個數 17int first hex 1 第乙個十六進製制字元的下標 18fo...
PTA習題7 8 字串轉換成十進位制整數
輸入乙個以 結束的字串,本題要求濾去所有的非十六進製制字元 不分大小寫 組成乙個新的表示十六進製制數字的字串,然後將其轉換為十進位制數後輸出。如果在第乙個十六進製制字元之前存在字元 則代表該數是負數。輸入格式 輸入在一行中給出乙個以 結束的非空字串。輸出格式 在一行中輸出轉換後的十進位制數。題目保證...