C语言死循环!!!
发布网友
发布时间:2024-09-08 11:36
我来回答
共4个回答
热心网友
时间:2024-10-01 01:07
1、m=1/t;
int型相除制取整数部分,所以你的程序里m永远等于0;
改为m=1.0/t;
2、s=s+m;
s+m赋给s,s为整形,只取整数部分。第一次循环后就变成0。
改为:double s;
3、m=-m;
因为每次循环,m值都是计算得来的,这句没有起到作用
#include <stdio.h>
void main()
{
int i=-1;
long t;
double s, m,pi;
s=1.0,t=3;
while(t<=1000000)
{
m=i*(1./t);
i=-i;
s=s+m;
t+=2;
}
pi=4*s;
printf("pi=%lf\n",pi);
}
关于下面那个,我在你上个题目里回复了!不是TC的问题,使程序有错误。
热心网友
时间:2024-10-01 01:06
m=1/t; t是int型,结果m=0.000 (为什么会死循环,不知道,应该不会,估计是数字太大了)
第二个函数
while( i< = 100 ) {
for( j = 2; j<i;j++ ) {
k = i%j;
if( k == 0 ) break;
}
if( j == i ) printf(..);
i++;
}
热心网友
时间:2024-10-01 01:01
你是用turbo c学的吧
热心网友
时间:2024-10-01 01:03
t<=1000000
因为t永远达不到100万,早期的编译器最多达到6万多,所以是个死循环。