小狼爱编程 发表于 2020-11-11 16:48:10

简单的程序问题

#include <stdio.h>
int main(void)
{
        float a, b, c, s, area;
        scanf("%f%f%f\n",&a ,&b ,&c);
        s = 1.0/2*(a+b+c);
        *area = sqrt(s*(s-a)*(s-b)*(s-c));
        printf("%f %f %f %f %f\n",a, b, c, s, area);
}

为啥给我报错说area没有在范围呢

'sqrt' was not declared in this scope
而且之前用这个Devc夜也有好多这样的报错。是之前的一些函数在这里面不通用了吗?

小狼爱编程 发表于 2020-11-11 16:49:51

本帖最后由 小狼爱编程 于 2020-11-11 16:54 编辑

是我自己没有调用数学函数,傻逼了。但是运行不显示结果是啥情况,输入完了SCANF就没了

1471590985 发表于 2020-11-11 20:52:22

本帖最后由 1471590985 于 2020-11-11 20:58 编辑

你的scanf里面有个\n所以你输入完abc以后得加上个\nc语言才会认为你输入完毕了 所以才会运行不显示结果
还有你的s写错了,应该是半周长,你少加了个括号

shooan 发表于 2020-11-11 21:30:56

目前已经没有任何语法错误了。
修改的地方在注释里面了

上代码

#include <stdio.h>
#include <math.h>                                        // 'sqrt' was not declared in this scope
                                                                        // 加上这行指令就可以消除这个错误了,因为sqrt这个函数是标准数学库里面的。
                                                                        // 没加上这行会报错是因为,在代码里面找不到和sqrt相关的信息.
int main(void)
{
      float a, b, c, s, area;
      scanf("%f%f%f",&a ,&b ,&c);// 格式字符串去掉了 '\n' 这个字符
      s = 1.0/2*(a+b+c);
      area = sqrt(s*(s-a)*(s-b)*(s-c));// area 前面不用加上 *
      printf("%f %f %f %f %f\n",a, b, c, s, area);
}


运行结果
https://i.bmp.ovh/imgs/2020/11/bdf36283d0c01096.png

小狼爱编程 发表于 2020-11-13 09:40:14

shooan 发表于 2020-11-11 21:30
目前已经没有任何语法错误了。
修改的地方在注释里面了



好的这样啊 谢谢,那个area的星号是说明这里有错误,我直接给标出来了
页: [1]
查看完整版本: 简单的程序问题