藍橋杯c語言16進位制轉10進位制

2020-08-13 10:33:18

十六進制轉十進制:
從鍵盤輸入一個不超過8位元的正的十六進制數位符串,將它轉換爲正的十進制數後輸出。
  注:十六進制數中的10~15分別用大寫的英文字母A、B、C、D、E、F表示。
  C語言:
  
第一種方法:得分75,因爲int型是整型的

#include<stdio.h>
int main()
{
	int n;
	scanf("%x",&n);//輸入16進位制數
	printf("%d",n);
	return 0; 
}

第二種方法:帶上檢測方法,得分爲0,我吐了呀。

#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
	int n,i=0;
	long long s=0;
	char a[9];
	gets(a);
	n=strlen(a);
	printf("%d\n",n);
	for(i=0;i<n;i++)
	{
		if(a[i]>='0'&&a[i]<='9')
		{
			s+=(a[i]-'0')*pow(16,i);
			printf("**%ld**",s);
		}
		if(a[i]>='A'&&a[i]<='F')
		{
			s+=(a[i]-'A'+10)*pow(16,i);
			printf("**%ld**",s);
		}
	 } 
	 printf("%ld",s);
}