鱼C论坛

 找回密码
 立即注册
查看: 940|回复: 10

[已解决]C语言程序运行不起来

[复制链接]
发表于 2020-3-21 20:50:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
/*
掉用函数求两个数的和与差:计算输入的两个数的和与差,要求自定义一个函数
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);


}


上述代码为什么运行不了,谢谢。
最佳答案
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


}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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;

}

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
老牛来学习 + 5 + 5 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-21 20:58:58 | 显示全部楼层
说下问题:
1,print是Python的。。。printf才是C的
2,你那个变量定义我没看明白,float的变量用%d接收?
3,函数也是,何必用指针?而且你的函数没有返回值
4,函数还有一个问题,C语言的函数不能返回多个值,所以要分开来写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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


}

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
老牛来学习 + 5 + 5 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

小朋友,你好像对C语言不是很了解啊。
人家用的是址传递的方式,要比你所谓的返回值强多了
你是不是不知道址传递和值传递啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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语言函数不能返回多个值,所以才用指针啊,就可以达到返回值的作用啊。

所以这是还有哪错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-21 21:13:12 | 显示全部楼层
sunrise085 发表于 2020-3-21 21:03
三个错误,一个拼写错误,一个和上一个帖子一样,一个是格式化用错了。程序中帮你注释了

有点尴尬。感谢感谢!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-21 21:14:34 | 显示全部楼层
老牛来学习 发表于 2020-3-21 21:13
有点尴尬。感谢感谢!!!!!!


一个地方摔倒两次。
这次要记住哈,scanf进行输入,用的是变量地址,不是变量名
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-21 21:15:51 | 显示全部楼层
sunrise085 发表于 2020-3-21 21:14
一个地方摔倒两次。
这次要记住哈,scanf进行输入,用的是变量地址,不是变量名

!!!!!!知道啦 谢谢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

确实,刚开始学习C语言,能帮忙解决的问题我就试试,顺便锻炼锻炼
如果有回答上的不足请多多指教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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


}


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-15 17:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表