[C语言] 将32位 int有符号类型的十进制数据 反转输出
1.[C语言] 将32位 int有符号类型的十进制数据 反转输出
最近遇到了个离线考试, 没办法上网查资料, 但是作为一个高度依赖网络字典库记忆各种库函数的衰仔, 非常头痛,
故而结束考试后, 尝试编写一个无需任何库函数就可以实现32位的 int有符号类型 十进制数据 反转输出. 如输入123456 输出 654321; 负数保留负号.
存此笔记, 以作个人警示.
示例代码中 #include <stdio.h> 单纯是为了打印和 兼容scanf输入 故而实现该功能并不需要这个东西,.
char i;
char m;
char wei[10] = {0};
wei[0] = abs(x % 10);
wei[1] = abs(x / 10 % 10);
wei[2] = abs(x / 100 % 10);
wei[3] = abs(x / 1000 % 10);
wei[4] = abs(x / 10000 % 10);
wei[5] = abs(x / 100000 % 10);
wei[6] = abs(x / 1000000 % 10);
wei[7] = abs(x / 10000000 % 10);
wei[8] = abs(x / 100000000 % 10);
wei[9] = abs(x / 1000000000 % 10);
//使用分治思想进行数据可能会溢出判断
if ((wei[0] != 0) && (wei[9] != 0)) {
//数据绝对会溢出判断
if (abs(wei[0]) > 2) {
return 0;
} else if (abs(wei[0]) == 2) {
//判断第二位数据反转会不会溢出
if (wei[1] > 1) {
return 0;
} else if (wei[1] == 1) {
//判断第三位数据反转会不会溢出
if (wei[2] > 4) {
return 0;
} else if (wei[2] == 4) {
//判断第四位数据反转会不会溢出
if (wei[3] > 7) {
return 0;
} else if (wei[3] == 7) {
//判断第五位数据反转会不会溢出
if (wei[4] > 4) {
return 0;
} else if (wei[4] == 4) {
//判断第六位数据反转会不会溢出
if (wei[5] > 8) {
return 0;
} else if (wei[5] == 8) {
//判断第七位数据反转会不会溢出
if (wei[6] > 3) {
return 0;
} else if (wei[6] == 3) {
//判断第八位数据反转会不会溢出
if (wei[7] > 6) {
return 0;
} else if (wei[7] == 6) {
//判断第九位数据反转会不会溢出
if (wei[8] > 4) {
return 0;
} else if (wei[8] == 4) {
//判断第十位数据反转会不会溢出
if (x > 0 && wei[9] > 7) {
return 0;
}
if (x < 0 && wei[9] > 8) {
return 0;
}
}
}
}
}
}
}
}
}
}
}
for (i = 9; i >= 0; i--) {
if (wei[i] != 0)
break;
}
m = i;
if (x < 0) {
for (x = 0; i >= 0; i--) {
x += wei[i] * pow(10, (m - i));
}
return -x;
} else {
for (x = 0; i >= 0; i--) {
x += wei[i] * pow(10, (m - i));
}
return x;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具