ajiqw2hi


私信TA

用户名:2542143554

访问量:435

签 名:

等  级
排  名 45903
经  验 321
参赛次数 0
文章发表 4
年  龄 0
在职情况 学生
学  校 吉首大学
专  业

  自我简介:

TA的其他文章

vs的报错解决
浏览:125
关于函数

     函数是一段可以重复使用的代码,用来独立地完成某个功能,它可以接收用户传递的数据,也可以不接收。接收用户数据的函数在定义时要指明参数,不接收用户数据的不需要指明,根据这一点可以将函数分为有参函数和无参函数 

#include <stdio.h>

int sum(){
    int i, sum=0;
    for(i=1; i<=100; i++){
        sum+=i;
    }
    return sum;
}

int main(){
    int a = sum();
    printf("The sum is %d\n", a);
    return 0;
}

斐波那契数列

     斐波那契数列是一组第一位和第二位为1,从第三位开始,后一位是前两位和的一组递增数列,

int Fibon1(int n)
{
    if (n == 1 || n == 2)
    {
        return 1;
    }
    else
    {
        return Fibon1(n - 1) + Fibon1(n - 2);
    }
}
int main()
{
    int n = 0;
    int ret = 0;
    scanf("%d", &n);
    ret = Fibon1(n);
    printf("ret=%d", ret);
    return 0;
}

while(scanf(“%d”, &n) && n)是什么意思
1:输入一个n值 并判断n值
如果n不等于0哪么就执行 while下面的语句。。如果等于0就不执行while下面的语句。  但是这里 我有点纳闷的是scanf函数有返回值吗?

2:scanf(“%d”,&n)是说输入一个整形得字符
&&是AND得意思
简单说A&&B就是A和B必须同时不为0 或者理解为 A B都成立得情况
这里如果你输入一个n 得字符 如果输入得不是空值 比如没有输入
这里就说先输入 在判断 输入的是否为空 如果为空 下面循环不执行
不为空 才执行~

母牛递归问题

int fun(int (n)){

if(n<=3) return n;

else return fun(n-1)+fun(n-3);

}

int main()

{

int n;

while(scanf("%d",&n)&&n)

printf("%d\n",fun(n));

return 0;

}

正确答案

# include<stdio.h>

 

int fun(int n)

{

    if(n<=3) return n;

    else return fun(n-1)+fun(n-3);

}

int main()

{

    int n;

    while(scanf("%d",&n) && n)

        printf("%d\n",fun(n));

 

    return 0;

}

确实很简洁,关键就是在while(scanf("%d",&n) && n),表达的意思是输入一个n,如果不是0就往下走。



 

0.0分

0 人评分

  评论区

  • «
  • »