萌新求大佬解答C语言找错,哪里有错,求解答,谢谢大佬

萌新求大佬解答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已经在函数外定义作为全局变量,如果又在函数里定义为局部变量,程序执行时,不知道要用全局变量还是局部变量,结果可能会不是自己要的。

你的错误是什么?