%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
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)