老牛来学习 发表于 2020-4-11 16:07:13

C语言



求解析这段代码如何实现需求的

Cool_Breeze 发表于 2020-4-11 16:18:34

本帖最后由 Cool_Breeze 于 2020-4-11 17:21 编辑

#include <stdio.h>
int F(int x);
int SunFun(int n);
int main(void)
{
        printf("%d\n",SunFun(10));
    return 0;
}
int F(int x)
{
        return x*x+1;
}
int SunFun(int n)
{
        int x,s=0;
        for (x=0;x<=n;x++) s+=F(x);
        return s;
}

老牛来学习 发表于 2020-4-11 16:37:56

Cool_Breeze 发表于 2020-4-11 16:18


所以书上for循环那里是x<n是吧?书上打印错误?

墨羽岚 发表于 2020-4-11 16:40:45

#include<stdio.h>

int F(int x)//定义一个F函数,返回F(x)
{
        return x*x+1;//F(x)=x*x+1
}
SunFun(int n)//定义求和函数SunFun()(我觉得是SumFun()打错了)
{
        int x,s=0;
        for(x=0;x<=n;x++)
                s+=F(x);//循环求和
        return s;//返回和s
}
int main(void)
{
        printf("The sum=%d\n",SunFun(10));//调用SunFun()并输出SunFun(10)的值
        return 0;//结束
}

墨羽岚 发表于 2020-4-11 16:42:29

本帖最后由 墨羽岚 于 2020-4-11 16:45 编辑

老牛来学习 发表于 2020-4-11 16:37
所以书上for循环那里是x

是<=,求10以内包括10的F(x)和
你这么写答案虽然是对的,但是逻辑上不对
按你这么写还不如不定义F直接丢进去算

老牛来学习 发表于 2020-4-11 17:04:07

墨羽岚 发表于 2020-4-11 16:42


这么算是求f(0)到f(10)的累加和是吧,之前想错了,一直想f(1)到f(10)的累加和。。

老牛来学习 发表于 2020-4-11 17:05:16

墨羽岚 发表于 2020-4-11 16:42


答案就是这样,不这样写还能怎么填答案?

墨羽岚 发表于 2020-4-11 17:11:43

老牛来学习 发表于 2020-4-11 17:05
答案就是这样,不这样写还能怎么填答案?

你看看我和楼上那位的答案和你的答案有啥区别{:10_277:}

人造人 发表于 2020-4-11 17:16:39

#include <stdio.h>

int F(int x) {
    return x * x + 1;
}

int SunFun(int n) {
    int x, s = 0;
    for(x = 0; x <= n; ++x) {
      s += F(x);
    }
    return s;
}

int main(void) {
    printf("The sum = %d\n", SunFun(10));
    return 0;
}
页: [1]
查看完整版本: C语言