| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 588 人关注过本帖
标题:菜鸟问一个关于数据类型问题
取消只看楼主 加入收藏
ahjszll
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-5-17
收藏
 问题点数:0 回复次数:2 
菜鸟问一个关于数据类型问题

#include<stdio.h>
main()
{
int i,sum,s1,d;
scanf("%ld",d);
sum=0; 输入给d的值为20,但结果为什么和下面的不一样.
s1=1;
for(i=1;i<=d;i++)
{
s1=s1*i;
sum=sum+s1;
}
printf("The sum is %ld\n",sum);
}

#include<stdio.h>
main()
{
int i,s1=1,sum=0;
for(i=1;i<=20;i++)
{
s1*=i;
sum+=s1;
}
printf("%ld",sum);
}

请问这是不是因为数据类型的错误?还是其他的错误,我确实找不出错误,请指教.

搜索更多相关主题的帖子: 类型 数据 
2007-05-20 18:32
ahjszll
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-5-17
收藏
得分:0 

谢谢


scanf("%ld",d);
改成
scanf("%ld",&d);
两者的结果还是不同.而且这两个循环语句好象没什么不同.

2007-05-20 21:51
ahjszll
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-5-17
收藏
得分:0 
谢谢大家



把int i,s1=1,sum=0;``的INT 该为LONG``运行的结果为:268040729
没改之前的为:135526937
而我上面黑色代码的结果为:121872409
这好像和scanf("%ld",d);中的"%ld"无关,因为我试了一下,他们的结果是一样的 ,我用的是Win-Tc.

问题依然不明白

[此贴子已经被作者于2007-5-21 22:54:37编辑过]

2007-05-21 22:48
快速回复:菜鸟问一个关于数据类型问题
数据加载中...
 
   



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

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