鱼C论坛

 找回密码
 立即注册
查看: 1233|回复: 9

[已解决]求助一个函数嵌套的程序!

[复制链接]
发表于 2021-2-22 16:21:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
#define N 5
#define K 4
long power(int n,int k);
long total(int n,int k);

long power(int n,int k) //第几个数,乘多少次
{
    int i;
    long power = n;//赋予初始值n,由total中的i决定
    for(i = 1; i < k; i++)
    {
        power = n*n;
    }
    return power;
}

long total(int n,int k)//第几个数,加起来。k代表乘方多少次
{
    int i;
    long sum = 0;
    for(i = 1; i <= n; i++)
    {
        sum += power(i,k);
    }
    return sum;
}

int main()
{
    printf("N = %d,K = %d\n",N,K);
    printf("sum = %ld\n",total(N,K));
    return 0;
}

算出来的答案sum = 55; 但是书上算出来是979;这个是用来就1的四次方加到5的四次方的,求大佬看看哪里出问题!感谢!
最佳答案
2021-2-22 19:38:36
power=n*n ;改为
power *=n; 即可。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-22 16:36:36 | 显示全部楼层
#include<stdio.h>
#define N 5
#define K 4
long power(int n,int k);
long total(int n,int k);

long power(int n,int k) //第几个数,乘多少次
{
    int i;
    long power = n;//赋予初始值n,由total中的i决定
    for(i = 1; i < k; i++)
    {
        power = power*n;//把n*n改成power*n
    }
    return power;
}

long total(int n,int k)//第几个数,加起来。k代表乘方多少次
{
    int i;
    long sum = 0;
    for(i = 1; i <= n; i++)
    {
        sum += power(i,k);
    }
    return sum;
}

int main()
{
    printf("N = %d,K = %d\n",N,K);
    printf("sum = %ld\n",total(N,K));
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-22 19:04:43 | 显示全部楼层
把题目发出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-22 19:38:36 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
power=n*n ;改为
power *=n; 即可。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-22 20:45:47 | 显示全部楼层
quark 发表于 2021-2-22 19:38
power=n*n ;改为
power *=n; 即可。


可以了 为啥呀 这两个不应该是等价的吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-22 20:46:46 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-22 21:47:57 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-22 21:49:37 | 显示全部楼层
学编程的盆子 发表于 2021-2-22 20:45
可以了 为啥呀 这两个不应该是等价的吗

懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-23 07:46:31 | 显示全部楼层

真的可以啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-24 21:26:52 | 显示全部楼层
找郝斌的C语言视频好好学学赋值语句吧。你会用+=、-=,就应该会用*=、/=;对于递归运算,不用前述的赋值号,等号右边是要有自身的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-22 13:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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