c - C 中的预期标识符

标签 c declaration

我收到的错误是“在 float 之前需要标识符或‘(’。”任何帮助将不胜感激。我读过它可能与 fprod 之后的分号有关?我尝试添加括号,例如(float) fsum 和 (float) fprod,以及删除带括号和不带括号的分号。

int main (void)

{

int x, y, z, fx, fy, fz, sum, prod, float fsum, float fprod;
                                   //The error occurs on line 9. The above is line 9
    printf("\n Enter the first integer number: ");
    scanf("%d", &x);
            if( x<=0){
            printf("\n Invalid entry. Entry must be greater than 0.");
            scanf("%d",&x);
    }

    printf("\n Enter the second integer number: ");
    scanf("%d", &y);
            if( y<=0){
            printf("\n Invalid entry. Entry must be greater than 0.");
            scanf("%d",&y);
    }

最佳答案

不能在同一个声明中声明不同类型的变量。改变

int x, y, z, fx, fy, fz, sum, prod, float fsum, float fprod;

int x, y, z, fx, fy, fz, sum, prod;
float fsum, fprod;

正如一些评论所指出的,将所有变量分组到一个声明中是不好的做法。最好根据功能或位置将它们分开。这实际上取决于您的程序,但您可以执行以下操作:

int x, y, z;
int fx, fy, fz;
int sum, prod;
float fsum, fprod;

此外,将变量初始化为一些合理的值也是一个好主意,因为它们将包含随机的未定义值,如果您在没有成功设置它们的情况下尝试使用它们,最终可能会很难发现错误。所以:

int x = 0, y = 0, z = 0; // or some other value if it makes sense
int fx = 0, fy = 0, fz = 0;
int sum = 0, prod  = 0;
float fsum = 0.0, fprod = 0.0;

关于c - C 中的预期标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30877719/

相关文章:

c - 使用链表实现队列中的"Segmentation fault (core dumped)"

c - 如何在c中使用tcp套接字编程查找客户端ip地址

c - 等效的 C 声明

在包含该类列表的结构之后定义的 C++ 类

swift - 有没有办法使用名称相同但返回类型不同的函数?

c++ - 'xyz' not declared error at line where 'xyz' is being declared

java - java的方法声明怎么写

c++ - 扭曲如何与原子操作一起工作?

c++ - 如何强制编译器将 C 名称改写为 C++ 名称

c - 如何更改默认的 MIB 搜索路径?