C语言程序不支持显示大数值么? 比如100000000..变成负数..

C语言程序不支持显示大数值么? 比如100000000..变成负数..,第1张

%d是把数据当作long类型了

%u会把数据当作long unsigned int

longlong建议用 %u%u来显示,把一个64位整数分成两个long

如:

long *ha = (long*)&a

printf("%u%u",ha[0],ha[1])

原因很简单,就是数据超界了,

ji=m*n

m和n一个是100000,一个是200000

long int已经表示下他们的乘积ji了

因为在vc6.0中long int也是只占32 的

所以你不能以这种方式来求两个很大的数的最小公倍数

推荐你用循环的方式来做

#include "stdio.h"

int main()

{

   int m,n,i,tmp

   scanf("%d%d",&m,&n)

   tmp=m

   if(m<n)

     tmp=n

   for(i=tmpi++)

   {

     if(i%m==0 && i%n==0)

     //找到两个数中较大的数开始的第一个能整除m,n的数,就是最小公倍数

     {

        printf("%d和%d的最小公倍数为%d\n",m,n,i)

        break

     }

   }  

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6642585.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存