老牛来学习 发表于 2020-3-21 20:50:07

C语言程序运行不起来

/*
掉用函数求两个数的和与差:计算输入的两个数的和与差,要求自定义一个函数
sum_diff(float op1,float op2,float *psum,float *pdiff),其中op1和
op2是输入的两个数,*psum 和 *pdiff是计算得出的和与差。
*/
#include<stdio.h>

void sum_diff(float pop1,float pop2,float *psum,float *pdiff)
{
    *psum = pop1 + pop2;
    *pdiff = pop1 - pop2;
}

int main()
{
    float op1,op2,sum,diff;

    print("输入两个变量:");
    scanf("%d %d",op1,op2);

    sum_diff(op1,op2,&sum,&diff);
    printf("和为%d,差为%d/n",sum,diff);


}





上述代码为什么运行不了,谢谢。

qiuyouzhi 发表于 2020-3-21 20:57:10

改好了:
/*
掉用函数求两个数的和与差:计算输入的两个数的和与差,要求自定义一个函数
sum_diff(float op1,float op2,float *psum,float *pdiff),其中op1和
op2是输入的两个数,*psum 和 *pdiff是计算得出的和与差。
*/
#include<stdio.h>

int _sum(int pop1,int pop2)
{
    float psum = pop1 + pop2;
    return psum;
}
int _diff(int pop1, int pop2)
{
        float pdiff = pop1 - pop2;
        return pdiff;
}

int main()
{
    int op1,op2;

    printf("输入两个变量:");
    scanf("%d %d",&op1,&op2);

    float diff = _diff(op1,op2);
    float sum = _sum(op1,op2);
    printf("和为%f,差为%f/n",sum,diff);
    return 0;

}

qiuyouzhi 发表于 2020-3-21 20:58:58

说下问题:
1,print是Python的。。。printf才是C的
2,你那个变量定义我没看明白,float的变量用%d接收?
3,函数也是,何必用指针?而且你的函数没有返回值
4,函数还有一个问题,C语言的函数不能返回多个值,所以要分开来写

sunrise085 发表于 2020-3-21 21:03:45

本帖最后由 sunrise085 于 2020-3-21 21:08 编辑

三个错误,一个拼写错误,一个和上一个帖子一样,一个是格式化用错了。程序中帮你注释了
/*
掉用函数求两个数的和与差:计算输入的两个数的和与差,要求自定义一个函数
sum_diff(float op1,float op2,float *psum,float *pdiff),其中op1和
op2是输入的两个数,*psum 和 *pdiff是计算得出的和与差。
*/
#include<stdio.h>

void sum_diff(float pop1,float pop2,float *psum,float *pdiff)
{
    *psum = pop1 + pop2;
    *pdiff = pop1 - pop2;
}

int main()
{
    float op1=,op2,sum,diff;

    printf("输入两个变量:");//这里printf烧写了一个f
    scanf("%d %d",&op1,&op2);//和上一个帖子错误一样

    sum_diff(op1,op2,&sum,&diff);
    printf("和为%f,差为%f\n",sum,diff);//float输出用%f,不是%d


}


sunrise085 发表于 2020-3-21 21:07:33

qiuyouzhi 发表于 2020-3-21 20:58
说下问题:
1,print是Python的。。。printf才是C的
2,你那个变量定义我没看明白,float的变量用%d接收 ...

小朋友,你好像对C语言不是很了解啊。
人家用的是址传递的方式,要比你所谓的返回值强多了
你是不是不知道址传递和值传递啊?

老牛来学习 发表于 2020-3-21 21:08:28

qiuyouzhi 发表于 2020-3-21 20:58
说下问题:
1,print是Python的。。。printf才是C的
2,你那个变量定义我没看明白,float的变量用%d接收 ...

/*
掉用函数求两个数的和与差:计算输入的两个数的和与差,要求自定义一个函数
sum_diff(float op1,float op2,float *psum,float *pdiff),其中op1和
op2是输入的两个数,*psum 和 *pdiff是计算得出的和与差。
*/
#include<stdio.h>

void sum_diff(float pop1,float pop2,float *psum,float *pdiff)
{
    *psum = pop1 + pop2;
    *pdiff = pop1 - pop2;
}

int main()
{
    float op1,op2,sum,diff;

    printf("输入两个变量:");
    scanf("%d %d",op1,op2);

    sum_diff(op1,op2,&sum,&diff);
    printf("和为%f,差为%f/n",sum,diff);


}




你说的printf和%f两个问题改好了,但是还是不能输出。
我记得现在不是函数没有返回值,编译器会自己加一个返回o把?
C语言函数不能返回多个值,所以才用指针啊,就可以达到返回值的作用啊。

所以这是还有哪错了{:5_105:}

老牛来学习 发表于 2020-3-21 21:13:12

sunrise085 发表于 2020-3-21 21:03
三个错误,一个拼写错误,一个和上一个帖子一样,一个是格式化用错了。程序中帮你注释了

有点尴尬。感谢感谢!!!!!!

sunrise085 发表于 2020-3-21 21:14:34

老牛来学习 发表于 2020-3-21 21:13
有点尴尬。感谢感谢!!!!!!

一个地方摔倒两次。
这次要记住哈,scanf进行输入,用的是变量地址,不是变量名

老牛来学习 发表于 2020-3-21 21:15:51

sunrise085 发表于 2020-3-21 21:14
一个地方摔倒两次。
这次要记住哈,scanf进行输入,用的是变量地址,不是变量名

!!!!!!知道啦 谢谢。

qiuyouzhi 发表于 2020-3-21 21:27:08

sunrise085 发表于 2020-3-21 21:07
小朋友,你好像对C语言不是很了解啊。
人家用的是址传递的方式,要比你所谓的返回值强多了
你是不是不 ...

确实,刚开始学习C语言,能帮忙解决的问题我就试试,顺便锻炼锻炼
如果有回答上的不足请多多指教{:5_109:}

569712304qq 发表于 2020-3-22 19:38:07

/*
掉用函数求两个数的和与差:计算输入的两个数的和与差,要求自定义一个函数
sum_diff(float op1,float op2,float *psum,float *pdiff),其中op1和
op2是输入的两个数,*psum 和 *pdiff是计算得出的和与差。
*/
#include<stdio.h>

void sum_diff(float pop1,float pop2,float *psum,float *pdiff)
{
    *psum = pop1 + pop2;
    *pdiff = pop1 - pop2;
}

int main()
{
    float op1,op2,sum,diff;

    printf("输入两个变量:");//这里printf烧写了一个f
    scanf("%f %f",&op1,&op2);//输出用%f,不是%d

    sum_diff(op1,op2,&sum,&diff);
    printf("和为%f,差为%f\n",sum,diff);//输出用%f,不是%d


}


页: [1]
查看完整版本: C语言程序运行不起来