c语言
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. 没写fn和没写return啊 你好,
你需要自己定义fn()函数,这里可以提供两种可行的思路,当然还有其他解决方法。
1. 通过n,来判断循环次数,每次循环内增加10的倍数。即
fn(3,2) 表示,第一次循环n=1,返回值+=3*10^(1),第二次循环n=2, 返回值+=3*10^(2)。最后返回33。
2. (复杂一些)借用字符串类型。即
声明一个空字符串变量,将整数3转换为字符串3,然后直接循环相应次数,组合成一个字符串,再转换为整数返回。
另外一个报错在于需要return一个数值。
其次,我观察到最后的得值是%d, &sum,一个指针传给一个整数输出,可能导致只输出内存地址,需要注意。不过这取决于编译器怎么看了。
页:
[1]