筛选16进制字符,进制转换

#include <stdio.h>
int main()
{
	char c;
	char a[80];
	int i=0;
	while((c=getchar())!='#')
	{
		if((c>='0'&&c<='9')||(c>='a'&&c<='f')||(c>='A'&&c<='F'))
		{
			a[i]=c;
			i++;
		}
	}
	int j;
	for(j=0;j<i;j++)      
	{
		printf("%c",a[j]);
	}
	
	return 0;
 } 

秦九韶算法

#include <stdio.h>
int main()
{
	char c;
	char a[80];
	int i=0;
	while((c=getchar())!='#')
	{
		if((c>='0'&&c<='9')||(c>='a'&&c<='f')||(c>='A'&&c<='F'))
		{
			a[i]=c;
			i++;
		}
	}
	int j;
	for(j=0;j<i;j++)      
	{
		printf("%c",a[j]);
	}
	int hextovalue(char a)
	{
		if(a>='0'&&a<='9')
		{
			return a-'0';
		}
		else if(a>='A'&&a<='F')
		{
			return 10+(a-'A');
		}
		else if(a>='a'&&a<='f')
		{
			return 10+(a-'a');
		 } 
		 else return -1;
	}
	int digit;
	long long result=0;
	for(j=0;j<i;j++)
	{
		char c=a[j];
		digit=hextovalue(c);
		result = result*16+digit;
	}
	printf("\n%lld",result);
	return 0;
 } 

改动后的代码

函数定义位置改动

c变量进行初始化

进制包含字符0~9,A~F,a~f

(用星火AI检查时的漏洞,改动错误)

#include <stdio.h>
#include <string.h>
int hextovalue(char a);
int main()
{
	char c='\0';
	char a[80];
	int i=0;
	while((c=getchar())!='#')
	{
		if((c>='0'&&c<='9')||(c>='a'&&c<='f')||(c>='A'&&c<='F'))
		{
			a[i]=c;
			i++;
		}
	}
	puts(a);
	
	int digit;
	long long result=0;
    int j;
	for(j=0;j<i;j++)
	{
		char c=a[j];
		digit=hextovalue(c);
		result = result*16+digit;
	}
	printf("%lld",result);
	return 0;
 } 
int hextovalue(char a)
	{
		if(a>='0'&&a<='9')
		{
			return a-'0';
		}
		else if(a>='A'&&a<='F')
		{
			return 10+(a-'A');
		}
		else if(a>='a'&&a<='f')
		{
			return 10+(a-'a');
		 } 
		 else return -1;
	}

小作业小作业 文章被收录于专栏

小作业,姑且叫做操作步骤超过5步的作业吧

全部评论

相关推荐

07-28 16:15
门头沟学院 Java
点赞 评论 收藏
分享
07-24 12:30
湘潭大学 营销
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务