a数组都没有赋初值,怎么得得出运行结果,如果得出一个结果的话,这个程序是运行过程是什么样的啊 指针内容太复杂了 求解
scanf不是在给数组a赋值吗
虽然代码里写的是p++,但是p指向的是a,那不就等于写&a[i++]吗
fn(2, 3) = 222
s = 246
#include <stdio.h> int fn( int a, int n ); int SumA( int a, int n ); int main() { int a, n; scanf("%d %d", &a, &n); printf("fn(%d, %d) = %d\n", a, n, fn(a,n)); printf("s = %d\n", SumA(a,n)); return 0; } /* 最终的正整数应该是 a*(10^i)+上一次的结果*/ int fn( int a, int n ){ int i,j; int ret = a;//初始化正整数 for(i=1; i<n; i++){ int tmp = 1; //tmp出循环自动销毁 //求 10^i for(j=1; j<=i; j++){ tmp *= 10; //初始化10^1 } //求ret ret += a*tmp; } return ret; } int SumA( int a, int n ){ int i; int sum = 0; for(i=1; i<=n; i++){ sum += fn(a,i); //这里要注意,fn(a,i) } return sum; }