为什么输出是0? sum=d+(d+dd)....+(d+dd+……+dd...d(n个d))

#include "stdio.h"

long fun(int d, int n)

{ int t=0,s=0; int i;

for(i = 0; i < n ; i++) { t = t + d; s += t; d = d * 10; }

return s; }

main()

{int d, n;

long sum, fun(int d, int n);

scanf_s("%d,%d", &d, &n);

sum = fun(d, n);

printf("sum=%ld\n", sum); }

#include "stdio.h"

long fun(int d,int n)

{

/**********Program********/ 

 

/**********  End  **********/

main()

{ int d,n;

  long sum,fun(int d, int n);

  scanf("%d%d",&d,&n);

  sum=fun(d,n);

  printf("sum=%ld\n",sum);

}

请把你的代码格式化一下,这样看不懂。

你在main里申明的fun函数没有返回值类型啊

你的代码错在main函数

 long sum,  这边语法错误应该是分号

 fun(int d, int n);   这个多余

scanf_s("%d,%d", &d, &n);

sum = fun(d, n); 

你的代码优化如下

#include "stdio.h" 
long fun(int d, int n) 
{ 
	int t=0,s=0; 
	int i; 
	for(i = 0; i < n ; i++) 
	{ 
		t = t + d; 
		s += t; 
		d = d * 10; 
	} 
	return s; 
} 

int main()
{
	int d, n;
	long sum; 
	scanf("%d,%d", &d, &n); 
	sum = fun(d,n);
	printf("sum=%ld\n", sum); 
   return 0;
}

输出结果:

5,3
sum=615

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632