作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的代码,显示“错误:被调用的对象不是函数或函数指针”。我的*符号导致错误。我是使用C语言的新手,所以我仍然感到困惑。请帮我。谢谢!
#include <stdio.h>
int main(void)
{
char typeOfBeam;
float B;
float H;
float b;
float h;
float pi = 3.14159265;
float r;
float momentOfInertia;
float I = momentOfInertia;
float iBeam = ((B * H)(B * H)(B * H) - (b * h)(b * h)(b * h)) / 12;
float rectangularBeam = ((b * h)(b * h)(b * h)) / 12;
float cylindricalBeam = ((pi * r)(pi * r)(pi * r)(pi * r)) / 4;
printf("Enter type of beam: ");
scanf("%c", &typeOfBeam);
if (typeOfBeam = iBeam)
{
printf("Enter Width: ");
scanf("%f", &B);
printf("Enter Flange-Flange Inner Face Height: ");
scanf("%f", &H);
printf("Enter Web Thickness: ");
scanf("%f", &b);
printf("Enter Flange Thickness: ");
scanf("%f", &h);
printf("The answer is: %f", iBeam);
}
else if (typeOfBeam = rectangularBeam)
{
printf("Enter Web Thickness: ");
scanf("%f", &b);
printf("Enter Flange Thickness: ");
scanf("%f", &h);
printf("The answer is: %f", rectangularBeam);
}
else if (typeOfBeam = cylindricalBeam)
{
printf("Enter Radius: ");
scanf("%f", &r);
printf("The answer is: %f", cylindricalBeam);
}
else
printf("Invalid input.");
return 0;
}
最佳答案
关于;
float pi = 3.14159265;
这试图从
float
文字中分配一个
double
。写得更好:
float pi = 3.14159265f;
注意尾随的'f'声明文字为
float
关于:
if (typeOfBeam = iBeam)
这是由于使用了
=
而导致的分配。建议:
if (typeOfBeam == iBeam)
注意==这是一个比较
float iBeam = ((B * H)(B * H)(B * H) - (b * h)(b * h)(b * h)) / 12;
和
if (typeOfBeam = iBeam)
iBeam不能同时是
char
和
float
存在相同的注意事项:
rectangularBeam
和
cylindricalBeam
关于:
float I = momentOfInertia;
变量:
momentOfInertia
尚未初始化为“已知”值。因此,此语句导致未定义行为。
float iBeam = ((B * H)(B * H)(B * H) - (b * h)(b * h)(b * h)) / 12;
float rectangularBeam = ((b * h)(b * h)(b * h)) / 12;
float cylindricalBeam = ((pi * r)(pi * r)(pi * r)(pi * r)) / 4;
由于变量:
B
,
H
, 'b
和
h
未初始化为“已知”值,因此这些语句导致未定义行为。请记住,执行是以“线性”方式执行的,因此,在变量设置为“已知”值之前,不得使用变量的内容。
4
和
12
:语句正在使用
float
值,因此文字也应该是
float
。建议将文字写成:
4.0f
和
12.0f
。
scanf()
系列函数时,请始终检查返回的值(而不是参数值)以确保操作成功。 (用户有很多方法可以导致此功能失败。)
scanf()
系列函数返回成功的
input format conversion
说明符(或EOF)的数量。由于当前代码中对
scanf()
的所有调用都恰好具有1个
input format conversion
指定符,因此,除1以外的任何返回值都表示发生了错误。
关于c - 错误: called object is not a function or function pointer. my * symbol causes the error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63753635/
我是一名优秀的程序员,十分优秀!