标题:递推法求n!问什么少了返回语句,输出就等于输入加一?
只看楼主
qsh631072071
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-9-6
结帖率:100%
 问题点数:0 回复次数:5 
递推法求n!问什么少了返回语句,输出就等于输入加一?
#include<stdio.h>
void main()
{  int sum(int a);
    long b;
    int a;
    scanf("%d",&a);
    b=sum(a);
    printf("%ld",b);
}
int sum(int a)
{ int i,sum=1;
    for(i=1;i<=a;i++)
    sum=sum*i;//少了返回值,输出值就是输入值加一!
        }
搜索更多相关主题的帖子: long 
2012-09-24 22:36
遗矢的老人
Rank: 9Rank: 9Rank: 9
来 自:成都
等 级:蜘蛛侠
威 望:7
帖 子:325
专家分:1131
注 册:2012-7-20
得分:0 
问题意思有点不明白,你这程序少了return 还能编译???
2012-09-24 23:50
qsh631072071
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-9-6
得分:0 
回复 楼主 qsh631072071
能啊,你试试看嘛
2012-09-25 12:31
阿鞠尼
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:首尔
等 级:蒙面侠
威 望:5
帖 子:1467
专家分:4442
注 册:2012-5-30
得分:0 
是这样的,如果你要得到这个返回值,而调用函数并没有返回,则得到一个非预期值。一般不会有错误,但是会有警告。

喜欢睡觉 却经常熬夜
2012-09-25 13:49
guihuaiyu
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-9-25
得分:0 
回复 楼主 qsh631072071
#include<stdio.h>
int main()
{  long sum(int a);
    long b;
    int a;
    scanf("%d",&a);
    b=sum(a);
    printf("%ld",b);
    return 0;
}
long sum(int a)
{ int i,sum=1;
    for(i=1;i<=a;i++)
    sum=sum*i;//少了返回值,输出值就是输入值加一!
    return sum;
    }
你定义b为long的型,但是却没有返回值,怎么得出答案??而且你定义的sum函数也为int,怎么得到long的值?这样就行了。。。。
2012-09-25 13:53
阿鞠尼
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:首尔
等 级:蒙面侠
威 望:5
帖 子:1467
专家分:4442
注 册:2012-5-30
得分:0 
回复 5楼 guihuaiyu
在vc6.0里,long int 跟int 是一回事。long int 是4字节,int也是4字节。
以前某些编译器是int 是2字节,long int 是4字节,现在都配置高了,32位机器,int都是4字节,long int 也是4字节,所以就一样。他们的数据范围是一样的,所以就是一样的

喜欢睡觉 却经常熬夜
2012-09-25 13:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-382041-1-1.html




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

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