「已注销」
2021-04-14 20:57
采纳率: 25%
浏览 58

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

 

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 猫夏i 2021-04-14 21:19
    已采纳

    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;
    }
    点赞 1 评论
  • lemon-l 2021-04-14 21:06

    要这么调用Plus(a,b),不用加参数类型。Plus函数里的x,y从哪来的?变量没声明过就不能用

    点赞 1 评论
  • Basesson 2021-04-14 21:28
    • 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已经在函数外定义作为全局变量,如果又在函数里定义为局部变量,程序执行时,不知道要用全局变量还是局部变量,结果可能会不是自己要的。
    点赞 1 评论
  • 桔子code 2021-04-14 21:06

    你的错误是什么?

    点赞 评论

相关推荐 更多相似问题