| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 414 人关注过本帖
标题:小问题。。。关于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
帖 子:2277
专家分: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: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册: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
快速回复:小问题。。。关于int的位置。
数据加载中...
 
   



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

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