中易网

C语言 求平方根问题

答案:4  悬赏:80  
解决时间 2021-04-27 05:16
  • 提问者网友:挣扎重来
  • 2021-04-27 00:09

#include <stdio.h>
#include <math.h>
main()
{
 float a,x1,x0;
 printf("请输入一个数:  ");
 scanf("%d",&a);
 if(a<0)
  printf("输入错误!\n");
 else
  x0=a/2;
     x1=(x0+a/x0)/2;
  while(fabs(x0-x1)>1e-6)
  {
   x0=x1;
   x1=(x0+a/x0)/2;
     
  }
  printf("%f\n",x1);
}

 

 

哪位高手帮忙看看为啥不出答案

最佳答案
  • 二级知识专家网友:duile
  • 2021-04-27 01:26

 scanf("%f",&a);


    float  不是 int

全部回答
  • 1楼网友:狙击你的心
  • 2021-04-27 03:50

你可以看看下面的代码(是在你的基础上改的)

#include <stdio.h> #include <math.h> int main() {  double a;  double x1,x0;  printf("请输入一个数:  ");  scanf("%lf",&a);  if(a<0)   printf("输入错误!\n");  else  { x0=a/2.0;  x1=(x0+a/x0)/2.0;  while(fabs(x0-x1)>1e-6)  {   x0=x1;   x1=(x0+a/x0)/2.0;     }  printf("%f\n",x1);  }  return 0; }

你应该是刚开始学习C吧!

你这个程序有以下几点要注意:

1、a你定义为浮点型,却用整型格式输入,会出问题。

2、if ..else语句的作用域没有注意。他们只对他们后面的一条语句起作用,如果有多条语句的话,要使用{}来将其转化为一条“语句”。

3、在进行代数除法时要注意  /和%这两个的定义与我们平时的除法的不同。

你好好加油吧!祝你学习进步啊!

  • 2楼网友:我的任性你不懂
  • 2021-04-27 03:24

你所定义的实形变量名“X0”和“X1”是不合法的吧!

C语言规定标识符只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线,比如:sum,average,_total,Class,day,month,Student,_name

以上都是合法的,下面是不合法的变量名:

M.D,John,☆ 123,*33,3D64,A>B

像这些东西有时候为了自己方便很容易出错,注意就可以了

  • 3楼网友:糜废丧逼
  • 2021-04-27 02:09
scanf("%f",&a);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息