繁体   English   中英

新手获取错误:“,”令牌之前出现预期的“)”

[英]Newbie Getting error: expected ')' before ',' token

我正在编写一个计算两个值的平方的程序(我必须使用一个函数。)我肯定有很多错误,但是,我似乎无法挑出它们:

#include <stdio.h>
#include <stdlib.h>
#include "header.h"

int integer1, integer2, total = 0;
int squared(int integer1, int integer2);
int main(void)
{
   printf("Enter two numbers to be Squared\n");
   scanf("%d%d",&integer1,&integer2);
   printf("Square of entered numbers = %d\n", squared(integer1,integer2));

   return 0;
}
int squared(int integer1, int integer2)
{
    int total;
    total = integer1 + integer2;
    return total *= total;
}

头文件:

#ifndef HEADER_H
#define HEADER_H

#define squared

int squared(int integer1, int integer2);

#endif

整个过程中的主要问题是,您没有指定每个函数参数的类型。 例如,您需要告诉编译器integer1是一个int 另外,请参阅hacks的答案。

一个接一个的两个返回语句是无用的。 第二个return语句不可访问。 您错过了两行结尾的分号。 可能这是您想要的功能:

int squared(int integer1,int integer2,int total)
{
   total = integer2+integer2;
   return total*total;
}

这将计算两个值的总和,并返回总和的平方。

除了功能定义之外,您甚至还需要更改函数调用,

printf("Square of entered numbers = %d\n",squared(total));

printf("Square of entered numbers = %d\n",squared(integer1,integer2,total));

因此该函数调用获取要添加的值。 阅读一些基本的c程序以了解格式和语法。

尽管您实际上不需要为函数squared的参数指定类型int ,但是由于只要未指定类型就假定为int ,只需将它们放下就可以了,例如:

int squared(int integer1, int integer2, int total);
// instead of
// int squared(integer1, integer2, total);
// both at the prototype and the definition of the function

再说一遍,您可以将其省略。

函数squared的定义中确实存在问题。 您没有使用分号; ,并且您已经为第一条语句写了一条返回单,我认为您实际上还不想返回任何内容。 您可能只是想要:

int squared(int integer1, int integer2, int total)
{
    total = integer1 + integer2;
    return total *= total;
}

另一重要的事情是,从main函数给squared函数调用少了2个参数。 squared等待3,您只给它1。您可能要这样称呼它:

...
    printf("Square of entered numbers = %d\n", squared(integer1, integer2, total));
...

最后,您不应该使用没有赋值的变量。 希望 integer1将有一个赋值,也希望 integer2也有赋值。 但是在您从main调用squaredtotal不会被赋值。 您可以将其初始化为0或类似的值:

...
    int integer1, integer2, total = 0;
...

事实上,你甚至都不需要有一个total的内部main ,你的squared功能并不需要持有一个第三个参数total ,只要你只需要声明一个int total内部squared 但是我不会那么做...

有了以上所有答案,您似乎已经错过了; 在函数的return语句中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM