weixin_45857043 2021-03-25 20:02 采纳率: 83.3%
浏览 91
已结题

求大佬指点哪个地方有错误,如何改进算法

#include <iostream>
#include <string.h>
#include <math.h> 
using namespace std;
int main(){
	char str[9];
	gets(str);
	int i,len,temp,sum;
	len=strlen(str); 
	for(i=0;str[i]!='0';i++){
	switch(str[i]){ 
		case 'A':temp=10;break;
		case 'B':temp=11;break;
		case 'C':temp=12;break;
		case 'D':temp=13;break;
		case 'E':temp=14;break;
		case 'F':temp=15;break;
		default: temp=str[i]-'0';break;
	}
		sum+=temp*pow(16,len-i-1);
	}
	cout<<sum;
	return 0;
}
  • 写回答

5条回答 默认 最新

  • 四海一叶秋 2021-03-25 22:00
    关注

    既然都用函数了,直接调用转换函数不就得了。

    #include <iostream>
    int main() {
    	char str[9];
    	gets_s(str,9);
    	std::cout << strtoul(str, 0, 16);
    	return 0;
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 9月26日
  • 已采纳回答 9月18日

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料