[英]Newbie syntax issue: error: expected ';' before ')' token
[英]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
调用squared
, total
不会被赋值。 您可以将其初始化为0
或类似的值:
...
int integer1, integer2, total = 0;
...
事实上,你甚至都不需要有一个total
的内部main
,你的squared
功能并不需要持有一个第三个参数total
,只要你只需要声明一个int total
内部squared
。 但是我不会那么做...
有了以上所有答案,您似乎已经错过了;
在函数的return语句中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.