1-1/2+1/3-1/4+……+1/99-1/100将结果输出
#include<stdio.h>
void main()
{
float sum=1.0,t,s=1;
int i;
for(i=1;i<=100;i++)
{
t=s/i;
sum=sum+t;
s=-s;
}
printf("1-1/2+1/3-1/4+……+1/99-1/100=%5.4f\n",sum);
}
为什么运行结果是1-1/2+1/3-1/4+......+1/99-1/100= inf
[解决办法]
// 1-1/2+1/3-1/4+......+1/99-1/100=
#include <stdio.h>
void main() {
double sum=0.0,t,s=1.0;
int i;
for (i=1;i<=100;i++) {
t=s/(double)i;
sum=sum+t;
s=-s;
printf("%d %.15lg\n",i,sum);
}
printf("1-1/2+1/3-1/4+……+1/99-1/100=%.15lg\n",sum);
}
//1 1
//2 0.5
//3 0.833333333333333
//4 0.583333333333333
//5 0.783333333333333
//6 0.616666666666667
//7 0.759523809523809
//8 0.634523809523809
//9 0.745634920634921
//10 0.645634920634921
//11 0.736544011544012
//12 0.653210678210678
//13 0.730133755133755
//14 0.658705183705184
//15 0.72537185037185
//16 0.66287185037185
//17 0.721695379783615
//18 0.66613982422806
//19 0.718771403175428
//20 0.668771403175428
//21 0.716390450794476
//22 0.67093590533993
//23 0.714414166209495
//24 0.672747499542829
//25 0.712747499542829
//26 0.67428596108129
//27 0.711322998118327
//28 0.675608712404042
//29 0.710091471024731
//30 0.676758137691398
//31 0.709016202207527
//32 0.677766202207527
//33 0.708069232510557
//34 0.678657467804675
//35 0.707228896376103
//36 0.679451118598326
//37 0.706478145625353
//38 0.680162356151668
//39 0.705803381792694
//40 0.680803381792694
//41 0.705193625695133
//42 0.681384101885609
//43 0.704639915839098
//44 0.681912643111825
//45 0.704134865334047
//46 0.682395734899265
//47 0.703672330643946
//48 0.682838997310612
//49 0.703247160575918
//50 0.683247160575918
//51 0.702855003713173
//52 0.683624234482404
//53 0.702492159010706
//54 0.683973640492187
//55 0.702155458674006
//56 0.684298315816863
//57 0.701842175465985
//58 0.684600796155641
//59 0.701549948698013
//60 0.684883282031347
//61 0.701276724654297
//62 0.685147692396233
//63 0.701020708269249
//64 0.685395708269249
//65 0.700780323653864
//66 0.685628808502349
//67 0.700554181636677
//68 0.685848299283736
//69 0.700341052906925
//70 0.68605533862121
//71 0.700139845663464
//72 0.686250956774575
//73 0.699949586911561
//74 0.686436073398048
//75 0.699769406731381
//76 0.686611511994539
//77 0.699598524981552
//78 0.686778012161039
//79 0.69943624000914
//80 0.68693624000914
//81 0.699281919021486
//82 0.687086797070267
//83 0.699134989841351
//84 0.687230227936589
//85 0.698994933818942
//86 0.687367026842198
//87 0.698861279715761
//88 0.687497643352125
//89 0.698733598408304
//90 0.687622487297193
//91 0.698611498286204
//92 0.687741933068813
//93 0.698494621240856
//94 0.687856323368516
//95 0.698382639157989
//96 0.687965972491323
//97 0.698275250841838
//98 0.688071169209185
//99 0.698172179310195
//100 0.688172179310195
//1-1/2+1/3-1/4+……+1/99-1/100=0.688172179310195
#include<stdio.h>
void main()
{
double s=0;
int i;
for(i=1;i<=100;i+=2){
s+=(1/(double)i)*(1/((double)i+1));
}
printf("1-1/2+1/3-1/4+……+1/99-1/100=%lf\n",s);
}