萌新求大佬解答C语言找错,哪里有错,求解答,谢谢大佬
问题描述:
答
Plus函数写在main函数下面最好在main函数之前声明一下int Plus(int a, int b);
Plus函数有返回值 应该定义为int Plus()
Plus函数里x, y 变量没声明 记得初始化一下
c = Plus(int a, int b); 这里不能声明变量....
好家伙... 新手该犯的错基本齐了 23333
#include<stdio.h>
int a = 2, b = 3, c;
int Plus(int a, int b);
int main()
{
int b = 5;
c = Plus(a, b);
printf("c(1)=%d\t", c);
c = Plus( a, b);
printf("c(2)=%d\n", c);
return 0;
}
int Plus(int a, int b)
{
static int z;
int x = 1, y = 1; //不知道你的要求随便初始化的
a = a - b;
z = a * x + b * y + z;
return z;
}
答
要这么调用Plus(a,b),不用加参数类型。Plus函数里的x,y从哪来的?变量没声明过就不能用
答
- Plus(int a,int b)函数定义了但没有声明,声明要在main(void)函数前面:
//这是函数声明
void Plus(int a,int b);
void main(void)
{
//这里写要执行的内容
}
//这是函数定义
void Plus(int a,int b)
{
//这里写函数执行的内容
}
- main(void)里在调用函数时,形参要填具体的变量或常量,如Plus(a,b),Plus(3,5)。如果是希望填入的值要强制转换,要把int或者变量用括号括起来,如:Plus((int)a,(int)b),Plus(int(a),int(b))
- 在Plus(int a,int b)里x和y没有定义
- Plus(int a,int b)的返回类型是void,所以不用写return z;,如果需要返回值,要把void的改成要返回的类型,如int Plus(int a,int b),double Plus(int a,int b)
- 在main(void)函数和Plus(int a,int b)函数中定义的a,b会有歧义,a和b已经在函数外定义作为全局变量,如果又在函数里定义为局部变量,程序执行时,不知道要用全局变量还是局部变量,结果可能会不是自己要的。
答
你的错误是什么?