来个大神帮我看看这个C语言的程序到底是哪里错了,在线急等!!!

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(void )
{
float sum = 1.0 ;
float t;
int i =1;
int j =0;
int cnt = 0;

while ( (pow(-1,j) * (float)1/i ) > 1e-4)
{
t = pow(-1,j) * (float)1/i ;
sum = sum + t ;
i++;
i++;
j++;
cnt++;
}
printf("pi = %f\n",4.0*sum);
printf("次数为 :%d",cnt);
return 0 ;
}
实现PI 的近似值 运行通过,但是结果不对

//根据你的代码修改的
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(void )
{
float sum  = 0.0 ;//这里是0
float t;
int i =1;
int j =0;
int cnt = 0;

while (  (float)1/i  > 1e-4)//负值没考虑
{
t =  pow(-1,j) * (float)1/i  ;
    sum = sum + t ;
    i++;
    i++;
    j++;
    cnt++;
}
printf("pi = %f\n",4.0*sum);
printf("次数为 :%d",cnt);
return 0 ; 
}

有几个问题:

1、while比较的时候没考虑负数的问题,第二次负的比正的小就退出循环

2、公式都错了,加多了一个1

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-01-20
发问题!!直接附上你的代码,还有错误的提示!!没人会浪费时间去看你的代码!!命名太丑,风格太丑!!追问

帮不上忙就闭嘴,少在BB

这个c语言代码错哪里了?
C编译的程序对语法检查并不像其它高级语言那么严格,这就给编程人员留下“灵活的余地”,但还是由于这个灵活给程序的调试带来了许多不便,尤其对初学C语言的人来说,经常会出一些连自己都不知道错在哪里的错误。看着有错的程序,不知该如何改起,通过对C的学习,积累了一些C编程时常犯的错误,以供参考...

求C语言高手解决,程序有一处错误始终找不出来。下面是程序代码。回答好...
错误原因主要有:1、C语言是大小写敏感的,注意一些函数和关键字的大小写,如:If和if的区别2、变量的名称错误3、调用的库函数没有头文件,如:inportb\/outportb等。下面的程序可以编译,但是连接时出现库函数没有说明的问题,请添加inportb\/outportb对应的头文件!include <stdio.h> include <conio.h>...

麻烦大家帮我看看,我用C语言编写的单链表有什么错误,在线急等!!!
好像没什么大问题,只是粗心问题,代码的执行逻辑没有看但,好像结果正确的,改后的注释在代码上,希望对你有帮助!include <stdio.h>#include <stdlib.h>typedef struct list_node{ char data;struct list_node *next;}linklist;linklist *creatlist_rear() \/\/尾插入法建立单链表{ char ...

一道C语言题目,看图~大神帮忙解答下吧!急急急急急!!在线等
答案是D 在C语言中数组赋值可以如A,那样,【】里面定义了长度5{}中有最大不超过5个值,则赋值成功 B在5个数值之内所以也是正确的 答案C,就是另外中赋值方法,在【】中不定义长度,因此数组a[]的实际长度取决于{}中的值的数量,也就是说在C答案中有5个0作为数值,因此C答案中的a[]的实际...

C语言,急急急,看不懂这段代码里last啥意思,在线等
last就是取到的上一个字符(初始时last为0,表示没有字符)。这程序就是把所有单词的首字符变为大写,其余字符不变。(若上一字符是空格或Tab或回车符,就输出当前字母的大写,非字母由不变;否则不是空格或Tab或回车符就直接输出原样),然后把当前字符保存到last中,作为下一个字符的比较标准。

求C语言大神 在线等!急!
int main(){ char arr[5][5];int i,j;for(i=0;i<5;i++){ for(j=0;j<5;j++){ if(2!=i){ if(2!=j){ arr[i][j]=' ';} else { arr[i][j]='*';} } else { arr[i][j]='*';} printf("%c",arr[i][j]);} printf("\\n");} return 0;} \/\/第2题 in...

C语言,fabs有多个重载函数,请问是哪里错了,急在线等
没被初始化的变量x、y,其值随机。所以程序执行会有问题。--- 至于函数重载,C语言不支持,C++才支持。查看codeblocks所用math.h,只有一个名为fabs的函数,即 _CRTIMP double __cdecl fabs (double);还有一个名为fabsf的函数:extern float __cdecl fabsf (float x);因为#include <cmath>指令...

一道经济学题,哪位大神帮帮我吧!孩子快不行了,在线等,挺急的!!!
详情请查看视频回答

求解救,C语言rename和remove函数运行不成功,。在线等,急!
首先 把rename的参数 改成绝对路径试一下。比如 rename("D:\\\\linshitxt", "D:\\\\booktxt");一般这种问题 都是文件路径不对造成的。你这个 booktxt 一般是boot.txt的。 这个有没有打错 如果用相对路径 这个boottxt必须存在 而且是和你生成的exe是在同一个目录下的。

麻烦大神帮忙看下电脑总是出现这个错误是哪里出问题了?如图!
你可以使用MemTest 这个软件来检测一下内存,它可以彻底的检测出内存的稳定度。 二、如果都没有,那就从软件方面排除故障了。 原理:内存有个存放数据的地方叫缓冲区,当程序把数据放在缓冲区,需要操作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过...

相似回答