A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 Mike001 于 2015-4-18 08:43 编辑

下面这个程序,能够正常输出a的值,但是不能正常输出b的值,也不能正确输出a+b的值,求解答
#include<stdio.h>
int main ()

{   int a,b;
    int pluse(int , int );
    int result;
   
    printf("Please input two integer number:");
    scanf("%d ,%d",&a,&b);
   
    result=pluse(a,b);

    printf("the result:%d",result);
}

int pluse(int a, int b){
    int c;
    c=a+b;
    return (c);
}

14 个回复

倒序浏览
1、int main()语句不完整,没有reurn 0
回复 使用道具 举报
int pluse(int a, int b){
    int c;
    c=a+b;
    return (c);
}

C在这个函数里,也就是说pluse();运行结束C就销毁了,你的pluse();直接返回0结束。怎么赋值给result?
直接改成 return a + b;  不需要那个C。
回复 使用道具 举报
jonk 发表于 2015-4-18 01:30
1、int main()语句不完整,没有reurn 0

问题不是出在这,我改了,还是不行~~
回复 使用道具 举报
仰望的繁华 发表于 2015-4-18 07:45
int pluse(int a, int b){
    int c;
    c=a+b;

这样也不对,我把scanf("%d ,%d",&a,&b)中,第一个逗号去掉,程序正常了。。。
回复 使用道具 举报
Mike001 发表于 2015-4-18 08:42
这样也不对,我把scanf("%d ,%d",&a,&b)中,第一个逗号去掉,程序正常了。。。 ...

scanf("%d ,%d",&a,&b);

你这写法,做分隔的:有一个空格,还有一个逗号,两个分隔符都符合,才会输入正常啊。基础视频里讲了:占位符那里用什么分隔,输入的时候也必须用什么分隔。

我前面说的那个是你的result值不对的问题。
回复 使用道具 举报 1 0
奥,明白了,谢谢了
回复 使用道具 举报
忘言 中级黑马 2015-4-18 10:57:37
8#
这个程序没问题,这程序输出a+b的和,没有单独输出a或者b的语句,注意输入的格式就行了,输入的两个数字之间要加逗号隔开。
回复 使用道具 举报
#include<stdio.h> int p(int a,int b) {         return a+b; } int main() {         int a=35,b=5;         scanf("%d %d",&a,&b);          printf("%d",p(a,b));         return 0; }
回复 使用道具 举报
#include<stdio.h>
int p(int a,int b)
{
        return a+b;
}
int main()
{
        int a=35,b=5;
        scanf("%d %d",&a,&b);

        printf("%d",p(a,b));
        return 0;
}
还有就是注意值传递的问题
回复 使用道具 举报
shao 中级黑马 2015-4-18 14:07:32
11#
刚开始看视屏。。。
  学习。。。。
回复 使用道具 举报
shao 发表于 2015-4-18 14:07
刚开始看视屏。。。
  学习。。。。

恩,一起加油~~
回复 使用道具 举报
忘言 发表于 2015-4-18 10:57
这个程序没问题,这程序输出a+b的和,没有单独输出a或者b的语句,注意输入的格式就行了,输入的两个数字之 ...

恩,恩,是的,学习了,谢谢~~
回复 使用道具 举报
Mike001 发表于 2015-4-18 08:42
这样也不对,我把scanf("%d ,%d",&a,&b)中,第一个逗号去掉,程序正常了。。。 ...

为什么把第一个逗号去掉就能运行了,我看着没问题啊
回复 使用道具 举报
你返回的C值在你的那个函数代码块销毁时已经没了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马