我正在编写一个计算两个值的平方的程序(我必须使用一个函数。)我确信有很多错误,但我似乎无法将它们挑出来:
#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
最佳答案
虽然您实际上不需要为函数 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;
...
实际上,您甚至不需要在 main
中包含 total
,您的 squared
函数不需要第三个参数只要您在 squared
中声明一个 int Total
,就可以保存 total
。但我不会讲到这一点...
关于c - 新手遇到错误: expected ')' before ',' token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22515750/