鱼C论坛

 找回密码
 立即注册
查看: 2868|回复: 2

c语言

[复制链接]
发表于 2018-1-11 21:12:01 | 显示全部楼层 |阅读模式

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

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

x
35.编写程序,输入两个正整数a(0<a<10)和n,求a+aa+aaa+…+aa…a(n个a)之和。要求定义并调用函数fn(a,n),它的功能是返回aa…a(n个a)。例如,fn(3,2)的返回值是33。
#include<stdio.h>
#include<math.h>
int main()
{
        int a,n,m,i,sum;
        printf("输入两个正整数a和n:");
        scanf("%d%d",&a,&n);
        sum=0;
        for(i=1;i<=n;i++)
        {
        m=fn(a,i);
        sum+=m;
        }
        printf("求a+aa+aaa+...之和:%d",&sum);
}
C:\Users\Administrator\Desktop\Cpp1.cpp(11) : error C2065: 'fn' : undeclared identifier
C:\Users\Administrator\Desktop\Cpp1.cpp(15) : warning C4508: 'main' : function should return a value; 'void' return type assumed
Error executing cl.exe.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-11 21:31:16 | 显示全部楼层
没写fn和没写return啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-11 22:09:25 | 显示全部楼层
你好,

你需要自己定义fn()函数,这里可以提供两种可行的思路,当然还有其他解决方法。

1. 通过n,来判断循环次数,每次循环内增加10的倍数。即
fn(3,2) 表示,第一次循环n=1,返回值+=3*10^(1),第二次循环n=2, 返回值+=3*10^(2)。最后返回33。

2. (复杂一些)借用字符串类型。即
声明一个空字符串变量,将整数3转换为字符串3,然后直接循环相应次数,组合成一个字符串,再转换为整数返回。


另外一个报错在于需要return一个数值。

其次,我观察到最后的得值是%d, &sum,一个指针传给一个整数输出,可能导致只输出内存地址,需要注意。不过这取决于编译器怎么看了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-24 03:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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