菜鸟问题!各位帮忙看一下下面这段代码!

lxas 2001-03-31 11:56:00
这段代码是用来死算勾股定理的边长可能,但是在a,b的数值过大便会出错。c的值
不对,如:a=500、c=287时c=265;a=300,b=256时c=300.
我想可能是和int的取值范围有关。请问如何改进!!!
#include<stdio.h>
main()
{
int a, b, c;

for(a=1; a<=100; a++)
for(b=1; b<=100; b++)
for(c=1; c<=100; c++)
{
if(a*a+b*b == c*c)
printf("%d , %d, %d \n", a, b, c);

}

}

...全文
85 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxas 2001-04-01
  • 打赏
  • 举报
回复
非要转换类型吗?
superwolf 2001-04-01
  • 打赏
  • 举报
回复
用float也可以。
magicblue 2001-04-01
  • 打赏
  • 举报
回复
to:Savagesky(野人) 
呵呵,不是随机数吧,int 型的范围在 -32768~~+32767内,当a为300时,a*a应为90000,但超过了int的范围,这时a*a的值应是(90000-65536)=24464,也就是说只能得到a*a的补码。c*c也一样,不是随机数。a=300,b=256时c=300.由此可看出a=24464,b=0,c=24464。即,a*a+b*b=c*c。
lxas 2001-04-01
  • 打赏
  • 举报
回复
如果不换成 long int 类型呢?
sundayboys 2001-04-01
  • 打赏
  • 举报
回复
呵呵,楼上说的对,a、b值大时,a*a+b*b早就超了int范围了,还是换成long int吧。
fiddleman 2001-04-01
  • 打赏
  • 举报
回复
int 型的范围在 -32768~~+32767内,而如果a、b的值太大,超过了范围,得出的c就是一个随机数,故而有你说的情况。可以将int 改为 long int (-2147483648~~+2147483647)
lxas 2001-04-01
  • 打赏
  • 举报
回复
多谢各位大侠!!!
NowCan 2001-04-01
  • 打赏
  • 举报
回复
用float不好,计算有误差的。
我不懂电脑 2001-04-01
  • 打赏
  • 举报
回复
不必,但你要对数据进行错误检查。
本套餐将包括两个重磅性的课程与一个赠送学习的课程,分别为SpringBoot实战视频教程与RabbitMQ实战教程跟SSM整合开发之poi导入导出Excel。目的是为了让各位小伙伴可以从零基础一步一个脚印学习微服务项目的开发,特别是SpringBoot项目的开发,之后会进入第二个课程:RabbitMQ的实战,即消息中间件在实际项目或者系统中各种业务模块的实战并解决一些常见的典型的问题!核心的知识点分别包括 一、SpringBoot实战历程课程 (1)SpringBoot实战应用场景的介绍与代码实战 (2)发送邮件服务、上传下载文件服务、Poi导入导出Excel (3)单模块与多模块项目构建、项目部署打包、日志、多环境配置、lombok、validator以及mybatis整合实战跟多数据源实战 (4)Redis缓存中间件的实战与缓存雪崩跟缓存穿透等问题的解决实战 (5)RabbitMQ消息中间件在业务模块异步解耦、通信、消息确认机制以及并发量配置等的实战 二、RabbitMQ实战教程课程 (1)RabbitMQ的官网权威技术手册拜读,认识并理解各大专有名词,如队列,交换机,路由,死信队列,消息确认机制等等 (2)RabbitMQ在业务服务模块之间的异步解耦通信实战,如异步记录日志与发送邮件等 (3)商城系统抢单高并发情况下RabbitMQ的限流作用与代码实战 (4)消息确认机制与并发量配置并用来实战商城用户下单 (5)死信队列深入讲解与DLX,DLK,TTL等概念的讲解并用来实战 “支付系统用户下单后支付超时而失效其下单记录”实战 详情,各位小伙伴可以查看两个课程的目录。相信学完该套餐相关课程后,你的实战能力将大大提升!涨薪将不再遥遥无期! 最后,赠送的SSM整合开发之POI导入导出Excel目的是为了让各位小伙伴也可以学习Spring+SpringMVC+Mybatis整合开发的项目,让大家一对比SpringBoot与SPring的项目开发流程以及复杂程度!!! 相信学完之后,你会对SpringBoot爱不释手!!

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧