按照题目要求改完的两个程序如下(改动的地方见注释)
第一个程序
#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;
}
digitalsum(i)==10 count%8==0 n/10%10 i+j+k