| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4401 人关注过本帖
标题:函数void fun(float * pf1,float * pf2,float * pf3,float * pf4)的功能是: ...
只看楼主 加入收藏
乘风飞扬
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-12-14
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:12 
函数void fun(float * pf1,float * pf2,float * pf3,float * pf4)的功能是:对传送过来的两个浮点数求出和、差
我写的编程为什么就调试不了呢?求各位高手指教下!
#include<stdio.h>
#include<stdlib.h>
int main()
{
    void fun(float * pf1,float * pf2,float * pf3,float * pf4);
    float a,b,*p1=&a,*p2=&b,*p3,*p4;
    printf("请输入两个数a,b\n");
    scanf("%f %f\n",*p1,*p2);
    fun(p1,p2,p3,p4);
    system("pause");
    return 0;
}
void fun(float * pf1,float * pf2,float * pf3,float * pf4)
{
    float sum,cum;
    pf3=&sum;
    pf4=&cum;
    sum=(*pf1)+(*pf2);
    cum=(*pf1)-(*pf2);
    printf("sum=%f\n",*pf3);
    printf("cum=%f\n",*pf4);
}
搜索更多相关主题的帖子: include system return 
2016-03-11 20:09
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
scanf("%f %f\n",p1,p2);  //p1,p2才是地址

   唯实惟新 至诚致志
2016-03-11 20:25
乘风飞扬
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-12-14
收藏
得分:0 
回复 2楼 qq1023569223
哦,是了谢谢!但我之前用&a,&b也是不行的,不知道为什么?而且我去掉*号之后也是不行啊
2016-03-11 21:02
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:4 
程序代码:
#include<stdio.h>
#include<stdlib.h>

int main()
{
    void fun(float* pf1,float* pf2,float* pf3,float* pf4);

    float a,b,sum,cum;

    printf("请输入两个数a,b:\n");
    scanf("%f%f",&a,&b);  //

    fun(&a,&b,&sum,&cum);

    printf("sum=%f\n",sum);
    printf("cum=%f\n",cum);

    system("pause");
    return 0;
}
void fun(float* pf1,float* pf2,float* pf3,float* pf4)
{
    *pf3=(*pf1)+(*pf2);
    *pf4=(*pf1)-(*pf2);
}
收到的鲜花
  • 乘风飞扬2016-03-11 23:57 送鲜花  3朵   附言:我很赞同

   唯实惟新 至诚致志
2016-03-11 22:29
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
回复 3楼 乘风飞扬
问题是有输入方式不对,还有p3,p4未先初始化。

   唯实惟新 至诚致志
2016-03-11 22:31
乘风飞扬
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-12-14
收藏
得分:0 
回复 5楼 qq1023569223
p3,p4不初始化应该么没多大问题的,也不是我输入方式有问题。看了你的代码之后,我知道了是我主函数出了点问题吧。谢谢你了!
2016-03-11 23:55
jklqwe111
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:35
帖 子:336
专家分:1135
注 册:2014-4-13
收藏
得分:1 
编程序是应该遵守一些基本的原则的,看楼主的代码中输入在主函数中,输出在子函数中,不合适,输入输出同层次操作,应该放在一个函数中,函数应该简单,只做一件事,只实现一个功能,fun函数既做加又做减,不好,拆分为两个函数,函数的参数尽量不要用作输出,最好用返回值做输出,指针用到可用的地方,不能为用指针而用指针

程序代码:

int main()
{
    float addfun(float ,float );
    float subfun(float ,float );
    float a,b,sum,cum;

    printf("请输入两个数a,b:\n");
    scanf("%f%f",&a,&b);  

    

    printf("sum=%f\n",addfun(a,b));
    printf("sub=%f\n",subfun(a,b));

    return 0;
}
float addfun(float f1,float f2)
{
   return f1 + f2;
}
float subfun(float f1,float _f2)
{
   return f1 - _f2;
}

2016-03-11 23:57
乘风飞扬
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-12-14
收藏
得分:0 
哦,谢谢了,但题目要求要只用void fun(float* pf1,float* pf2,float* pf3,float* pf4)一个函数,我也没办法。而且代码中输入在主函数中,输出在子函数中怎么不适合啊,我也是经常这样用的,求教!
2016-03-12 09:52
jklqwe111
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:35
帖 子:336
专家分:1135
注 册:2014-4-13
收藏
得分:0 
有些题目所考察的只是语言方面的特性,此题可能是要说明指针在输出参数方面的作用,但是这种函数设计,是与一些基本的编程原则相违背的,这些原则并非语言规则,不遵守计算机是不会有意见的,但是会影响你的编程效率的,对程序的其他方面的如阅读性,可扩展,可测试等很多方面产生影响,这些在学编程时可能用不到,但我觉得还是要在这方面多加注意。
现在说一下对输入输出的看法,输入输出和业务逻辑是完全不同的操作,基本的原则是要隔开,函数fun中只有屏幕输出,看起来问题不大,但如果改为文件输出,或打印输出,那么函数fun是不是还要得到文件地址,或打印设置等一些参数呀,这些与你的业务逻辑搅在一起,会产生很多烦恼。
2016-03-12 10:58
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
同意9樓的説法

授人以渔,不授人以鱼。
2016-03-12 11:29
快速回复:函数void fun(float * pf1,float * pf2,float * pf3,float * pf4)的功 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023870 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved