鱼C论坛

 找回密码
 立即注册
查看: 2417|回复: 8

小递归,运行为何会报错?

[复制链接]
发表于 2014-3-19 23:11:05 | 显示全部楼层 |阅读模式
20鱼币
#include "stdio.h"
long recursion(int n);
void main()
{
    int n;
    long result;
    printf("input a integer num: \n");
    scanf("%d", &n);

    result = recursion( n );
    printf("%d! = %ld\n", n, result);
}
long recursion(int n)
{
    long temp_result;
    if( n<0 )
    {
        printf("n < 0,input error!\n");
    }
    else if( n == 0 || n ==1 )
    {
        temp_result = 1;
    }
    else
    {
        temp_result = resursion( n-1 ) * n;
    }
    return temp_result;
}

以上代码跟鱼视频的一模一样,为何编译能过,但不能运行?
偶太菜了,找不出毛病,有劳各路大神拔刀相助,{:7_166:}{:7_181:}
-------------------Configuration: recursion - Win32 Debug--------------------
Linking...
recursion.obj : error LNK2001: unresolved external symbol _resursion
Debug/recursion.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.

recursion.exe - 1 error(s), 0 warning(s)

最佳答案

查看完整内容

temp_result = resursion( n-1 ) * n;这句应该是 temp_result = recursion( n-1 ) * n;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-19 23:11:06 | 显示全部楼层
    temp_result = resursion( n-1 ) * n;这句应该是
    temp_result = recursion( n-1 ) * n;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-19 23:46:59 | 显示全部楼层
如果楼上是对的,你编译应该过不了才对,可能是编译器找不到你的程序入口。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-20 00:02:59 | 显示全部楼层
以下是正确的代码:


#include <stdio.h>
long recursion(int n);
void main()
{
    int n;
    long result;
    printf("input a integer num: \n");
    scanf("%d", &n);

    result = recursion( n );
    printf("%d! = %ld\n", n, result);
}
long recursion(int n)
{
    long temp_result;
    if( n<0 )
    {
        printf("n < 0,input error!\n");
    }
    else if( n == 0 || n ==1 )
    {
        temp_result = 1;
    }
    else
    {
        temp_result = recursion( n-1 ) * n;    //这里是recursion而不是resursion  
    }                                           //写代码可要注意哦!^_^!
    return temp_result;
}

呵呵!你只写错了一个字母!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-20 00:04:54 | 显示全部楼层
resursion 和  recursion 一个字母只差,一开始写程序的时候要小心,写程序的能力是靠写出来的,可以经常写,遇到错误多留心,下次遇到了同样的错误就可以轻松解决了。加油!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-20 12:14:48 | 显示全部楼层
#include "stdio.h"
long recursion(int n);
void main()
{
    int n;
    long result;
    printf("input a integer num: \n");
    scanf("%d", &n);

    result = recursion( n );
    printf("%d! = %ld\n", n, result);
}
long recursion(int n)
{
    long temp_result;
    if( n<0 )
    {
        printf("n < 0,input error!\n");
    }
    else if( n == 0 || n ==1 )
    {
        temp_result = 1;
    }
    else
                {
        temp_result =  recursion( n-1 ) * n;
                }
return temp_result;
}
打错了变量名
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-20 17:29:31 | 显示全部楼层

说的很棒,好多时候就是不熟练
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-3-20 22:35:16 | 显示全部楼层
machimilk 发表于 2014-3-19 23:11
temp_result = resursion( n-1 ) * n;这句应该是
    temp_result = recursion( n-1 ) * n;

神啊,偶不得不去买块超级无敌大豆腐来撞一下{:7_163:},原来粗心一直是偶的死穴吖

不过,非常感谢,终于可以运行,和调试了,嘻嘻
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-3-20 22:38:33 | 显示全部楼层
夜神月0_0 发表于 2014-3-20 00:04
resursion 和  recursion 一个字母只差,一开始写程序的时候要小心,写程序的能力是靠写出来的,可以经常写 ...

嗯,领教领教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 23:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表