我想知道下面这个程序哪里错了,为什么得不到我想要的结果
#include "stdio.h"
fun()
{int i,n;
double j;
double s=1;
for(i=1;i<=n;i++)
j=1.0/(double)i;
if(n%2!=0)
j=-j;
s+=j;
printf("%f",s);
}
void main()
{
int n;
double s=1;
printf("N:");
scanf("%d",&n);
if(n=1)
printf("%f",s);
else
s=fun();
}
为什么要从2开始啊,非常感谢191080350
追答因为s已经是1了,不用再加1了
#include<bits/stdc++.h>
using namespace std;
void fun(int n){
int i;
double j;
double s=1;
for(i=2;i<=n;i++) //从2开始,s初值是1了
{
j=1.0/i;
if(i%2!=0)
j=-j;
s+=j;
}
printf("%lf\n",s);
}
void main()
{
int n;
double s=1;
printf("N:");
scanf("%d",&n);
if(n==1) //==比较用等号
printf("%lf\n",s); //
else
fun(n); //传参,没有返回值!
return 0;
}
}