Xiao迟野 2021-03-23 15:53 采纳率: 0%
浏览 677

一个C语言16进制加法的程序

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
	int n, sum = 0x0;
	while ('\n'!=getchar()) {
		scanf("%x", &n);
		sum += n;
	}
	printf("%d", sum);
	return 0;
}

我真的疑惑了,为什么溢出了啊...

  • 写回答

1条回答 默认 最新

  • 泡视界 2021-03-29 17:38
    关注

    因为getchar()先获取了一个字符,所以scanf获取到错误的数值,将getchar放到最后就行

    int main() {
    
    	int n, sum = 0x0;
    	 do {
    
    		scanf_s("%x", &n);
    		sum += n;
    
    	 } while ('\n' != getchar());
    	printf("%d", sum);
    
    	return 0;
    }
    评论

报告相同问题?

悬赏问题

  • ¥15 远程访问linux主机超时
  • ¥15 odoo17存货管理优势于中国国内该行业传统ERP或MES的详细解读和举例
  • ¥15 CPU卡指令整合指令数据都在图片上
  • ¥15 火车票关联12306问题
  • ¥15 odoo17处理受托加工产品
  • ¥15 如何用MATLAB编码图三的积分
  • ¥15 圆孔衍射光强随孔径变化
  • ¥15 MacBook pro m3max上用vscode运行c语言没有反应
  • ¥15 ESP-PROG配置错误,ALL ONES
  • ¥15 结构功能耦合指标计算