按照题目要求改完的两个程序如下(改动的地方见注释)
第一个程序
#include<stdio.h>
void main()
{
float n,f
float x1=1,x2,temp//这里x1初始化为1,因为要先给x1赋值
printf("Enter a positive number:")
scanf("%f",&n)
while(1)
{
x2=(x1+n/x1)/2//这里这句移到这里,因为要先给x2赋值
temp=x1-x2
if(temp<0)
temp=-temp
if(temp<1e-5)
break
x1=x2
}
printf("The square root of %5.2f is %8.5f\n",n,x2)
}
第二个程序
#include<stdio.h>
void main()
{
float n,f
float sqroot(float n)
printf("Enter a positive number:")
scanf("%f",&n)
f=sqroot(n)//这里接收函数返回值,因为函数有返回值
printf("The square root of %5.2f is %8.5f\n",n,f)//这里把x2改成f,因为x2未定义
}
float sqroot(float n)
{
float x1=1,x2,temp//这里x1初始化为1,因为x1要先赋值
for()//这里去掉temp>1e-5,因为for循环体中有判断了
{
x2=(x1+n/x1)/2//这里这句移到这里,因为x2要先赋值
temp=x1-x2
if(temp<0)
temp=-temp
if(temp<1e-5)
break
x1=x2
}
return x2
}
错误点:
第1行,末尾不需要“;”号;
2. 第2行,“mian”拼写错误,改为“main”
3. 第3行, 同类型局部变量定义之间用","分隔,即"int ymd"改为"int y,m,d";
4. 第5行,变量名书写错误,且scanf函数中的读入变量应为指针型,即"scanf("%d%d%d",yy,mm,dd)"改为“scanf("%d%d%d",&y,&m,&d)”
5. 第6行,变量名书写错误,即“printf("这三个整数是:%d, %d, %d\n",yy,mm,dd)”改为“printf("这三个整数是:%d, %d, %d\n",y,m,d)”。
int main(void){int i,j,s=1
for(i=1i<=200i++){
s=1//这里加一句
for(j=2j<ij++)
//if(i/j==0)//这里改如下
if(i%j==0)
s=s+j
if(s==i){
printf("%d=1",i)
for(j=2j<ij++)
//if(i/j==0)//这里改如下
if(i%j==0)
printf("+%d",j)
printf("\n")
}
}
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)