C语言改错题,根据题目修改图中错误的源程序代码?

题目见图1所示,图2、图3分别给出相应程序的源代码(功能相同),但是两个程序代码均有少量错误,请找出错误代码并改正【注释说明一下】

按照题目要求改完的两个程序如下(改动的地方见注释)

第一个程序

#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个回答  2021-11-13
说一下中间图中的代码。代码中x1和x2两个变量的值没有赋予初始值。应该再读入n以后,增加两个语句,x1=0; x2=n;
第2个回答  2021-11-13

    digitalsum(i)==10 count%8==0 n/10%10 i+j+k

第3个回答  2021-11-13
printf("%3d %3d %3d\n"a,b,c); "后面少一个逗号, main函数void类型 最后不用return 0了
相似回答