错误:调用对象类型'double'不是函数或函数指针[关闭](error: called object type 'double' is not a function or function pointer [closed])

所以我是C的新手,正在做这个项目并在尝试编译时遇到这个错误,

错误:

sphere.c:25:22: error: called object type 'double' is not a function or function pointer

码:

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int main(void){

  double radius, surfArea, volume;

  printf("Enter the radius of a sphere: /n");
  scanf("%lf", & radius);

  if(radius <= 0){

    printf("Invalid entry");
      exit(1);
  }
  surfArea = M_PI*4.00*(pow(radius, 2));
  volume = (4/3)*M_PI(pow(radius, 3));        //line 25

  printf("Entererd radius is: %f", & radius);
  printf("The surface area is: %f", & surfArea);
  printf("The volume is: %f", & volume);

  return (0);
}

编辑:谢谢大家,我让它工作!


So I am new to C and was doing this project and keep running into this error when trying to compile it,

ERROR:

sphere.c:25:22: error: called object type 'double' is not a function or function pointer

CODE:

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int main(void){

  double radius, surfArea, volume;

  printf("Enter the radius of a sphere: /n");
  scanf("%lf", & radius);

  if(radius <= 0){

    printf("Invalid entry");
      exit(1);
  }
  surfArea = M_PI*4.00*(pow(radius, 2));
  volume = (4/3)*M_PI(pow(radius, 3));        //line 25

  printf("Entererd radius is: %f", & radius);
  printf("The surface area is: %f", & surfArea);
  printf("The volume is: %f", & volume);

  return (0);
}

edit: Thanks everyone I got it working!


原文:https://stackoverflow.com/questions/25796229
2021-06-29 15:06

满意答案

volume = (4/3)*M_PI(pow(radius, 3)); 
                   ^

这里有一个缺少的运算符(可能是* )。

请注意, 4/3是整数除法,如果要进行浮点除法,则需要其中一个操作数为浮点类型,例如4 / 3.0

编辑:我注意到你的代码中还有很多其他错误,我让你修复它们。


volume = (4/3)*M_PI(pow(radius, 3)); 
                   ^

There is a missing operator here (probably a *).

Note that 4/3 is an integer division, if you want a floating point division you need one of the operand to be of a floating point type, e.g., 4 / 3.0.

EDIT: Well I noticed there are many other errors in your code, I let you fix them.

相关问答

更多

为什么调用这个函数会产生错误“<函数>不是函数或函数指针”?(Why calling this function produces error “ is not a function or function pointer”?)

main()有一个qwertyInches局部变量,它影响了qwertyInches()函数。 引用C11 ,第6.2.1章, 标识符的范围 ( 强调我的 ) [....]如果标识符在同一名称空间中指定了两个不同的实体,则范围可能会重叠。 如果是这样,一个实体( 内部范围 ) 的范围将严格在另一个实体( 外部范围 )的范围之前结束。 在内部范围内,标识符指定在内部范围内声明的实体; 在外部范围中声明的实体在内部范围内隐藏(并且不可见)。 解决方案:更改其中一个名称。 也就是说, qwertyInc...

“调用对象类型NSString不是函数或函数指针”错误?(“Called object type NSString is not a function or function pointer” error?)

我有这个完全相同的错误,并发现它是由于我通过键入所有的元素手动创建一个数组,并忘记了其中两个之间的逗号。 I had this exact same error and discovered it was caused because I had created an array manually by typing out all of it's elements, and had forgotten a comma in between two of them.

双指针函数参数和CComPtr(Double pointer function argument and CComPtr)

没关系,但可以简化: HRESULT D3DPresentEngine::CreateD3DSample( IDirect3DSwapChain9 *pSwapChain, IMFSample **ppVideoSample ) { // Caller holds the object lock. D3DCOLOR clrBlack = D3DCOLOR_ARGB(0xFF, 0x00, 0x00, 0x00); CComPtr< IDirec...

指针函数是函数对象类型吗?(Is a pointer-to-function is a function object type?)

函数对象类型是一个对象类型(3.9),可以是函数调用中的后缀表达式的类型。 §20.8[function.objects] 标准中上述句子的脚注230(N3337)指出: 这种类型是一个函数指针或一个具有成员操作符()或类类型的类类型,它具有转换为指向函数的指针。 因此,函数指针类型是一个函数对象类型。 标准继续: 函数对象是函数对象类型的对象。 §20.8[function.objects] 因此,函数指针是函数对象类型,是一个函数对象。 请注意,尽管有“对象”的传统内涵,但指针是C ++中的对...

函数与void双指针输出(function with void double pointer output)

您的功能原型与您想要实现的目标无关。 如果你希望你的函数分配内存并将其引用发送回main,那么你的函数将如下所示(考虑到你想传递双指针): void function(void ***ptr) { float *coords; coords = (float*)malloc(3*500*sizeof(float)); *ptr = (void **) &coords; //do something return; } main() { void...

C基本 - 被调用的对象不是函数或函数指针(C basic - called object is not a function or function pointer)

如果你想乘,你需要使用*运算符。 不能将带括号的表达式彼此相邻以表示乘法。 (1/3 + sin(x/2))*(pow(x, 3) + 3) If you want to multiply, you need to use the * operator. You can't put parenthesized expressions adjacent to each other to denote multiplication. (1/3 + sin(x/2))*(pow(x, 3) + 3)

错误:被叫对象'fopen'不是函数或函数指针[关闭](error: called object ‘fopen’ is not a function or function pointer [closed])

当您编译器试图告诉您时,您声明fopen是FILE*类型的变量: getFileCli.c:22:8: note: declared here FILE *fopen; 既然你的变量既不是函数也不是函数指针,你不能称之为 : getFileCli.c:94:12: error: called object ‘fopen’ is not a function or function pointer fout = fopen(fname, "wb"); ^ 要...

所谓的对象'char *'类型不是函数或函数指针(called object 'char* 'type is not a function or function pointer)

你的函数参数time是一个指向char的指针。 但是,在你的函数体中,如果它是一个你可以调用的函数,你就试图对待它。 这就是错误所说的...... char *类型的对象不是函数或函数指针[因此,我不能称之为!] 本质上,你已经通过具有相同名称的本地变量来隐藏time函数。 我建议改变你的函数参数的名字。 Your function parameter time is a pointer to a char. However, in your function body, you're tryin...

错误:调用对象类型'double'不是函数或函数指针[关闭](error: called object type 'double' is not a function or function pointer [closed])

volume = (4/3)*M_PI(pow(radius, 3)); ^ 这里有一个缺少的运算符(可能是* )。 请注意, 4/3是整数除法,如果要进行浮点除法,则需要其中一个操作数为浮点类型,例如4 / 3.0 。 编辑:我注意到你的代码中还有很多其他错误,我让你修复它们。 volume = (4/3)*M_PI(pow(radius, 3)); ^ There is a missing operator h...

错误:被调用的对象不是函数或函数指针(error: called object is not a function or function pointer)

至于错误的含义: 2(x&y)告诉编译器调用函数2 ,将x&y作为参数传递(就像printf("hi")意思是“ 调用printf并传递"hi"作为参数 ”)。 但是2不是函数,因此会出现类型错误。 从语法上讲,每当你有一个值后跟( ,这是一个函数调用。 As for what the error means: 2(x&y) tells the compiler to call the function 2, passing x&y as an argument (just like printf...

相关文章

更多

Object Oriented Programming

Some might also contend that inheritance should be ...

两种js function 声明方式

http://helephant.com/2012/07/14/javascript-function ...

function-Oceanus配置说明

作用: 作为 table 的子节点,用于声明路由规则 属性: ref – Function 类型的 b ...

error C2668: 'M' : ambiguous call to overloaded function

以下是代码: #include&lt;iostream&gt;using namespace std ...

ServletOutputStream cannot be resolved to a type

在使用jsp生成web图片时遇到这个问题,这是源代码中的一条语句,源代码可以执行,可是一将源码放入ec ...

Guava Doubles类-double基本类型的实用工具类

static double min(double... array)返回存在于数组的最小值

getOutputStream() has already been called for this response 问题

做一个jsp下载excel的功能,功能描述如下:首先将excel下载到服务器,然后从服务器下载到本地。 ...

Becoming a data scientist

Data Week: Becoming a data scientist Data Pointed, ...

javascript函数与对象

对应js而言没有类的概念,只有对象的概念,对象创建基本认识:使用函数就可以创建对象。定义函数直接用fu ...

Guava学习笔记:复写的Object常用方法

  在Java中Object类是所有类的父类,其中有几个需要override的方法比如equals,h ...

最新问答

更多

在循环中组合来自单独表的点(Combine points from separate tables in a loop)

试试这个查询: SELECT m.id, m.title, sum(if(aw.film_nominated = 1,a.nom_points,0)) AS total_nom_points, sum(if(aw.film_won = 1,a.win_points,0)) AS total_win_points, sum(if(aw.film_nominated = 1,a.nom_points,0))

如何将域本体与WordNet同义词链接?(How to link a domain ontology with WordNet synsets?)

据我所知,没有适用于Protégé4.3或更高版本的插件。 (我查看了WordNet普林斯顿相关项目页面,Ontoling是一个有人创建的插件,但它只适用于Protégé3.2)。 你可能不得不诉诸 1)回归到更古老的Protégé版本。 2)使用Java(或您首选的编程语言)api for wordnet(如JAWS)以及基于本体框架的Java(再次偏好)(如OWL API或Apache Jena)来创建这些链接。 3)自己为WordNet写一个Protégé插件! As far as I k

在WPF C#中的ListView中将项目拖放到特定索引中(Drop Item into Specific Index in ListView in WPF C#)

WPF并不是真的被设计成以这种方式使用。 虽然你可以强力将ListViewItem直接添加到ListView,但它真正应该工作的方式是你有一些类型的集合( ObservableCollection可以正常工作)并将ListView的ItemsSource属性绑定到该集合。 那么答案很简单。 您可以使用带有索引的集合的Insert方法,而不是Add方法。 至于找到鼠标事件发生的ListViewItem,可以使用VisualTreeHelper.HitTest方法。 WPF is

Swift未声明的类型和构建设置(Swift undeclared type and build settings)

在ViewController.Swift放入以下语句 import calendarView 编辑: 请确保在目标的构建设置中正确设置Library Search Path ,如下所示。 路径应该与您的.xcodeproj文件相关。 Put following statement in your ViewController.Swift import calendarView Edit: Please ensure to set Library Search Path correctly

React Material UI - 导出多个高阶组件(React Material UI - Export multiple higher order components)

看看它在material-ui文档站点中的处理方式,特别是在AppFrame组件中: export default compose( withStyles(styles, { name: 'AppFrame', }), withWidth(), connect(), )(AppFrame); 他们正在使用重组来执行此操作。 所以在你的情况下,这将是: import React, { Component } from 'react'; import compose fro

PHP Post自动登录登录(PHP Post Automatic login Login)

当您在该站点上时,您将登录并在此之后转到所需的页面。 该网站允许您到达那里,因为他们通常有一个存储您的数据的会话。 因此,基本上您需要基于cURL模拟系统中的会话。 如果您认为会话的工作原理,您会发现您很可能需要接受cookie,其中该站点将存储会话ID。 所以这也是你需要用cURL做的。 你需要给它一个存储cookie的方法。 所以你可以像这样使用curl_setopt函数: curl_setopt($ch, CURLOPT_COOKIEJAR, '/path/to/cookie.txt');

Git for Windows,将GIT_SSH设置为shell文件会导致“错误:无法生成:没有这样的文件或目录”(Git for Windows, setting GIT_SSH to a shell file causes causes “error: cannot spawn : No such file or directory”)

由于一些完全无法解释的原因,我可以验证它现在在cmd和git bash中都有效,而之前没有。 现在开始为ssh创建一个git-repo预处理器,这样多账户用户就可以更轻松了。 For some totally unexplained reason, I can verify that NOW it works in both cmd and git bash whilst it didn't before. Now on to creating a git-repo preprocessor f

从php代码安装debian驱动器(Mounting a drive in debian from php code)

我有一个疯狂的想法...... 您可以将cron设置为以root身份运行,以检查脚本中的mount命令。 该脚本只需设置要处理的mount命令,当cron到达它时,运行mount,将命令标记为已处理,然后写入日志文件,然后可以显示该日志文件。 I have a wild idea... You could set a cron to run as root that checks for mount commands from your script. The script would simp

使用XCUIApplication和覆盖窗口的OSX UI测试(OSX UI testing with XCUIApplication and covered windows)

要点击某个特定窗口之前,请执行以下操作。 [[[XCUIApplication alloc] init].windows[@"Window"] click]; To focus a specific window before clicking something inside it, do the following. [[[XCUIApplication alloc] init].windows[@"Window"] click];

计时器环绕灵活的位大小(Timer wraparound with flexible bit sizes)

您可以向上乘以而不是符号扩展,以使整个范围与算术类型的大小相同。 换句话说,使用定点算术来填充整数。 在你的情况下,用uint32_t ,看起来像 uint32_t start = GetSomePlatformSpecificTimer(); RunSomeOtherCode(); uint32_t end = GetSomePlatformSpecificTimer(); start <<= 32-COUNTER_WIDTH; end <<= 32-COUNTER_WIDTH; uint32