C语言基础小问题,求解答

#include
void fun(int n)
{
int i;
float s=0,m=0;
for(i=1;i<=n;i++)
{
m=m+i;
s=s+(1/m);
}
return;
}
main()
{
int n;float s;
printf("\n 请输入一个数:\n");
scanf("%d",&n);
s=fun(n);
printf("结果为:%f\n",s);
}
原题调用函数必须是void,下方的main是固定的,要求填写调用函数,我自己填的调用函数,然后s = f(n)一行一直在报错,寻求解答

fun没有返回值 所以s=肯定报错。如果fun没有返回值fun原型应为fun(int n,float *s) 不然S的值带不出

函数改成float,加上返回值

#include<stdio.h>
float fun(int n)
{
int i;
float s=0,m=0;
for(i=1;i<=n;i++)
{
m=m+i;
s=s+(1/m);
}
return s;
}
main()
{
int n;float s;
printf("\n 请输入一个数:\n");
scanf("%d",&n);
s=fun(n);
printf("结果为:%f\n",s);
}