标题:小问题。。。关于int的位置。
只看楼主
zzh2015
Rank: 1
来 自:江苏扬州
等 级:新手上路
帖 子:32
专家分:0
注 册:2015-4-7
结帖率:90.91%
已结贴  问题点数:10 回复次数:5 
小问题。。。关于int的位置。
以下是一段代码:
#include<stdio.h>
long cmn(int m,int n);
int main(void)
{
    printf("c(8,3)=%d\n",cmn(8,3));
    return 0;
}
long cmn(int m,int n)
{
    int a=1,b;
    int k=1;
    int r=1;
    b=m-n;
    while(b>0)
    {
        a=a*b;
        b--;
    }
    while(m>0)
    {
        k=k*m;
        m--;
    }
    while(n>0)
    {
        r=r*n;
        n--;
    }
    return k/(a*r);
}
我这样写检验是正确的,但如果这样写:
#include<stdio.h>
long cmn(int m,int n);
int main(void)
{
    printf("c(8,3)=%d\n",cmn(8,3));
    return 0;
}
long cmn(int m,int n)
{
    int a=1,b;
    b=m-n;
    while(b>0)
    {
        a=a*b;
        b--;
    }
    int k=1;
    while(m>0)
    {
        k=k*m;
        m--;
    }
     int r=1;
     while(n>0)
    {
        r=r*n;
        n--;
    }
    return k/(a*r);
}
就是错误的。。。为什么呢?
搜索更多相关主题的帖子: include return 
2015-05-06 15:36
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
哪错了?

剑栈风樯各苦辛,别时冰雪到时春
2015-05-06 15:45
yu1543054075
Rank: 1
等 级:新手上路
帖 子:102
专家分:8
注 册:2015-4-30
得分:3 
int k=1;这种声明只能写在程序的开头
2015-05-06 16:18
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:3 
分编译器  有的允许 有得不允许

DO IT YOURSELF !
2015-05-06 16:22
小小猪丶
Rank: 1
等 级:新手上路
帖 子:4
专家分:3
注 册:2015-5-7
得分:2 
额///  vc2013可以  我试过了  应该是部分编译器可以得 当初学的时候老师不推荐这样写的 最好养成好习惯定义写在开头
2015-05-07 00:41
es小涛
Rank: 2
等 级:论坛游民
帖 子:10
专家分:13
注 册:2014-12-17
得分:2 
没错啊 我试过了  但是这样写不好 最好是写在开头  应该是编译器的问题
2015-05-07 08:38



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




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

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