如何解决错误:被调用的对象不是函数或函数指针我的*符号导致错误
这是我的代码,显示“错误:被调用的对象不是函数或函数指针”。我的*符号导致错误。我是使用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",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以外的任何返回值都表示发生了错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。