以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 C/C++编程思想 』  (http://bbs.xml.org.cn/list.asp?boardid=61)
----  荤菜求助  (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=43377)


--  作者:荤菜
--  发布时间:2/21/2007 9:14:00 PM

--  荤菜求助
main()
{long int num;
int i,t;
printf("please input an number (0--99):");
scanf("%ld",&num);
i=num%10;
t=num/10;
printf("it is 2.%d,%d%d",num,i,t);


getch();
}
这个程序第二行把long int改成int,然后把第三行的%ld改成%d就算对了.照理说一个long int型的跟一个int型的计算,int型的会转换成long int型的,应该得到正确结果,如输入34会得到43,可我在win-tc环境下怎么也得不到正确结果.


--  作者:荤菜
--  发布时间:3/2/2007 1:16:00 PM

--  
我后来又改了一些:
main()
{long int num;
int i,t;
printf("please input an number (0--99):");
scanf("%ld",&num);
i=num%10;
t=num/10;
printf("%d%d",i,t); /* 换成printf("%d,%d%d",num,i,t);试试*/
getch();
}
目的是调换两位数的位置,我在win-tc环境下终于得到正确结果啦,但是换成printf("%d,%d%d",num,i,t);试试却始终不行,至于为什么我现在还没弄明白.
--  作者:卷积内核
--  发布时间:3/2/2007 8:42:00 PM

--  
printf("%ld,%d%d",num,i,t);试试
字符类型注意匹配,不然显示有可能不正确。
--  作者:荤菜
--  发布时间:3/28/2007 10:55:00 PM

--  
谢谢.换成printf("%ld,%d%d",num,i,t);是可以了,但换成printf("%d%d",i,t);又可以了,这又如何解释呢?
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms