| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2579 人关注过本帖
标题:为什么用VC 6.0 和turbo C 算出来的结果不一样
只看楼主 加入收藏
prankmoon
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:161
专家分:921
注 册:2009-7-21
收藏
得分:0 
以下是引用diaoxiong007在2009-9-5 21:50的发言:
...
而只有语句才必须在后面加“;”,所以以上的写法不对。...
语句本身就已经使用分号结尾了,再加就多余了。
for (i=0; i<n; i++);也是合法的语句,因为从语法上来说没有任何错误。只是不是我们所要表达的意思而已。比如:
程序代码:
#include <stdio.h>
int main(void)
{
    int i, j = 0;
 
    for (i=0, j++; i< 5; i++);
    printf("i = %d, j = %d\n", i, j);
 
    return 0;
}

输出的结果:
i = 5, j = 1
                                                                       .
我们看到循环还是进行了5次,所以i最终的结果是5。上面的代码其实相当于:
程序代码:
#include <stdio.h>
int main(void)
{
    int i, j = 0;
 
    for (i=0, j++; i< 5; i++)
    {
        NULL;
    }
    printf("i = %d, j = %d\n", i, j);
 
    return 0;
}



[ 本帖最后由 prankmoon 于 2009-9-6 00:46 编辑 ]
2009-09-06 00:45
iweek
Rank: 1
等 级:新手上路
帖 子:12
专家分:6
注 册:2008-12-20
收藏
得分:0 
回复 楼主 itwin
运行的结果不同的原因是
在 TC 中  sizeof(int) = 2
在 VC 中  sizeof(int) = 4
由于 斐波那契 数列 增长的很快,很容易溢出
当你选择较小的数的时候,结果是应该一样的。
2009-09-06 01:39
qiuyingz168
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2009-9-5
收藏
得分:0 
这应该是一个新手经常犯的错误了,在for语句后面加 ;  俺也是新手   嘿嘿
2009-09-06 10:09
月一新手
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:3
专家分:21
注 册:2009-9-8
收藏
得分:0 
for(i=3;i<=n;i++);这个是有问题了!!
2009-09-08 10:16
快速回复:为什么用VC 6.0 和turbo C 算出来的结果不一样
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037628 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved