C语言改错复习题_1.doc
文本预览下载声明
6)./*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:求如下表达式:
1 1 1
S = 1 + —— + ——— + ...... + ———————
1+2 1+2+3 1+2+3+......+n
------------------------------------------------------*/
#include stdio.h
main()
{
int n;
float fun();
printf(Please input a number:);
/**********FOUND**********/
print(%d,n) ;
printf(%10.6f\n,fun(n));
}
/**********FOUND**********/
fun(int n)
{
int i,j,t;
float s;
s=0;
/**********FOUND**********/
while(i=1;i=n;i++);
{
t=0;
for(j=1;j=i;j++)
t=t+j;
/**********FOUND**********/
=s+1/t;
}
return s;
}
答案:
【1】 scanf(%d,n);
【2】 float fun(int n)
【3】 for(i=1;i=n;i++) 或 for(i=1;n=i;i++) 或 for(i=1;in+1;i++) 或 for(i=1;n+1i;i++)
【4】 s+=1.0/t; 或 s= s + 1.0 /(float)t; 或 s= s + 1.0 /t; 或 s+=1.0/(float)t;
11)./*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:判断m是否为素数,若是返回1,否则返回0。
------------------------------------------------------*/
#includestdio.h
main()
{
int m,k=0;
for(m=1;m100;m++)
if(fun(m)==1)
{
printf(%4d,m);k++;
if(k%5==0) printf(\n);
}
}
/**********FOUND**********/
void fun( int n)
{
int i,k=1;
if(m=1) k=0;
/**********FOUND**********/
for(i=1;im;i++)
/**********FOUND**********/
if(m%i=0) k=0;
/**********FOUND**********/
return m;
}
答案:
【1】 int fun( int m) 或 fun( int m)
【2】 for(i=2;im;i++) 或 for(i=2;mi;i++) 或 for(i=2;i=m-1;i++) 或 for(i=2;m-1=i;i++)
【3】 if( m%i == 0 ) k=0;
【4】 return k;
12)./*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:用下面的和式求圆周率的近似值。直到最后一项的绝对值
小于等于0.0001。
π
显示全部