图片-C语言的递归算法,编译为什么会出现这样的结果

问题描述

C语言的递归算法,编译为什么会出现这样的结果

解决方案

首先你这不是递归算法,递归算法最基本的必须运算过程中直接或者间接的调用函数本身。
你的这个为题应该是 scanf() 函数的用法问题,去掉scanf()函数中除了 %d 以外的字符应该就没有问题了。
scanf()函数把从键盘读入的数存入指定的变量中,在你的程序中就是读入的数字放入整型变量n中,你的scanf()函数中除了有%d格式控制符外,还有一堆字符串,肯定是不对的。前面的格式化控制符,确定你要从键盘读入的数据的类型。

解决方案二:

因为scanf语句里面必须标准匹配!
scanf("请输入递归值%d",&n);
你就必须在屏幕输入以下内容:
请输入递归值%d

解决方案三:

 写一个递归求和的给你
int foo(int n)
{
    if (n == 1) return 1;
    return n + foo(n - 1);
}
int main()
{
    int n = 0;
        scanf("%d", &n);
        int sum = foo(100);
        printf("%dn", sum);
}

解决方案四:

 int foo(int n)
{
    if (n == 1) return 1;
    return n + foo(n - 1);
}
int main()
{
    int n = 0;
        scanf("%d", &n);
        int sum = foo(n);
        printf("%dn", sum);
}
时间: 2024-09-17 04:48:13

图片-C语言的递归算法,编译为什么会出现这样的结果的相关文章

c语言-C语言的递归算法,编译时会出现图中的数值,无论输什么数都是这个求和值

问题描述 C语言的递归算法,编译时会出现图中的数值,无论输什么数都是这个求和值 解决方案 首先这并不叫递归,递归是自己调用自己的意思. 这个程序的错误在于scanf格式说明里面不能有汉字 换成 scanf("%d",&n); 解决方案二: 你的程序首先没有用递归,其次scanf不要/n 解决方案三: 你这是一个循环程序, 另外你在你在要输入的数值前面输入和 %d 符号前面一样的串之后,输入数值再敲回车就可以了.不然你读到的值永远是0.

c语言-C语言程序,编译没错,但执行完之后就提示错误。

问题描述 C语言程序,编译没错,但执行完之后就提示错误. #include #include #include struct st { char name[50]; int age; }info; void main(void) { struct st s[20]; char FileA[50]; FILE*fp; if((fp=fopen("e:students.txt","wt"))=NULL) { printf("打开过程中有错,请检查n"

课后思考题2:C语言用递归算法,将一个字符串逆序输出,提示:字符串以'\0'结尾。

问题描述 课后思考题2:C语言用递归算法,将一个字符串逆序输出,提示:字符串以''结尾. 课后思考题2:C语言用递归算法,将一个字符串逆序输出,提示:字符串以''结尾. 解决方案 void foo(char * s) { if (!s) return; foo(s + 1); printf("%c", *s); } 解决方案二: void function(char *p) { if(*p=='/0') return ; function(p+1); printf("%c&q

课后思考题1:C语言用递归算法,计算x的y次方,其中y是正整数

问题描述 课后思考题1:C语言用递归算法,计算x的y次方,其中y是正整数 课后思考题1:C语言用递归算法,计算x的y次方,其中y是正整数 解决方案 int foo(int x, int y) { if (y == 1) return x; return x * foo(x, y - 1); } 解决方案二: #include void main() { int x,y,i,s; scanf("%d,%d",&x,&y); s=1; // s for(i=1;i<=

在sharepoint2013中如何用正则表达式实现模糊查询文档或图片?语言是C#

问题描述 在sharepoint2013中如何用正则表达式实现模糊查询文档或图片?语言是C# 比如***.jpg或者***.word,要使搜索一个字或者两个字的时候就能查询,类似于这种一句话的表达式(?^|[^#]*[s])#(([[](?[^..,.agname>[^...请大家帮帮忙,本人没有接触过编程不懂,要是能解决此类难题,我会非常感激的,谢谢.

mp3-c语言 函数指针编译出错

问题描述 c语言 函数指针编译出错 #ifndef LIBAO_H #define LIBAO_H typedef enum{wav,wim,mp3} io_type_t; typedef struct IOINFO{ io_type_t type; //文件类型编号 char *name; //wav wim,mp3等 char *author; //作者 char *time; //编写时间 char *describe; //模块描述 } io_info_t; typedef struct

linux包编译失败-Linux安装R语言,报编译失败!

问题描述 Linux安装R语言,报编译失败! Error:compilation failed for package 'Rserve' 说包编译失败! 貌似说版本问题,于是换了几个版本还是不行! R六个包! 第一个包是tar.gz解压出来进入目录./configure make make install的! 之后的包都是 R CMD INSTALLL XXXX.tar.gz来执行命令的! 同事在第一台上装成功了,第二台我装就没有成功,两台Linux系统版本也不一样!

c#-C#实现对c语言的在线编译并且根据输出评分

问题描述 C#实现对c语言的在线编译并且根据输出评分 大二学生狗一枚,最近在写一个c语言的考试系统.但是在编程题这里需要用到在线编译和根据输出评分.希望大神帮帮忙,最好能有代码可以让我分析一下.谢谢 解决方案 http://www.cnblogs.com/ma6174/archive/2013/05/12/3074034.html C#类似的思路,C#使用Process.Start调用命令行.

一个c语言单向链表,编译通过,运行结果却不知所谓,请求帮助

问题描述 一个c语言单向链表,编译通过,运行结果却不知所谓,请求帮助 这段代码在rhel6中用gcc编译通过,运行结果未定义,其中作的链表按number大小排序打印出来是没有排过序的结果,而且输入记录多了,其中某些项的number打印出来会由输入的值变成0或者一个莫名其妙的整数. vs2008中编译通过,打入多项记录只能显示2条,而且前一条是乱码. 最简单的一个数据结构,却忙了半天还查不出原因,帮个忙吧-_-||| 原代码: /*简单单向链表,输入学生名称和号码,按号码排序, 如果号码相同则记录