| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2142 人关注过本帖
标题:一个复数运算问题
只看楼主 加入收藏
一鑫
Rank: 2
等 级:论坛游民
帖 子:111
专家分:12
注 册:2018-4-12
结帖率:92.86%
收藏
已结贴  问题点数:5 回复次数:18 
一个复数运算问题

#include<stdio.h>
float resultr,resulti;
void isadd(float r1,float r2,float i1,float i2)
{
    resultr=r1+r2;
    resulti=i1+i2;
}
void iscf(float r1,float r2,float i1,float i2)
{
    resultr=r1*r2-i1*i2;
    resulti=r1*i2-r2*i1;
}
int main()
{
    float r1,r2,i1,i2;
    printf("输入第一个复数");
    scanf("%f,%f",&r1,&i1);
    printf("输入第二个复数");
    scanf("%f,%f",&r2,&i2);
    isadd(r1,r2,i1,i2);
    printf("%.0f+%.0fi=和值\n",resultr,resulti);
    iscf(r1,r2,i1,i2);
    printf("%.0f+%.0fi=乘值",resultr,resulti);
    return 0;
}
为什么加法正常,减法就是0+0了
搜索更多相关主题的帖子: 复数 运算 float printf 输入 
2018-05-11 16:19
青蝶
Rank: 2
等 级:论坛游民
帖 子:160
专家分:51
注 册:2018-2-4
收藏
得分:1 
函数没有返回值,相当于main函数里的resultr,resulti没被改变
2018-05-11 16:26
青蝶
Rank: 2
等 级:论坛游民
帖 子:160
专家分:51
注 册:2018-2-4
收藏
得分:0 
可以直接用指针
#include<stdio.h>
float resultr,resulti;
void isadd(float r1,float r2,float i1,float i2,float *pr,float *pi)
{
    *pr=r1+r2;
    *pi=i1+i2;
}
void iscf(float r1,float r2,float i1,float i2,float *pr,float *pi)
{
    *pr=r1*r2-i1*i2;
    *pi=r1*i2-r2*i1;
}
int main()
{
    float r1,r2,i1,i2;
    printf("输入第一个复数");
    scanf("%f,%f",&r1,&i1);
    printf("输入第二个复数");
    scanf("%f,%f",&r2,&i2);
    isadd(r1,r2,i1,i2,&resultr,&resulti);
    printf("%.0f+%.0fi=和值\n",resultr,resulti);
    iscf(r1,r2,i1,i2,&resultr,&resulti);
    printf("%.0f+%.0fi=乘值",resultr,resulti);
    return 0;
}
2018-05-11 16:32
Pine_
Rank: 1
等 级:新手上路
威 望:1
帖 子:4
专家分:6
注 册:2018-5-9
收藏
得分:1 
用指针吧,局部变量不可以在函数外有效的。
2018-05-11 16:37
一鑫
Rank: 2
等 级:论坛游民
帖 子:111
专家分:12
注 册:2018-4-12
收藏
得分:0 
回复 3楼 青蝶
你这个也是不行嗯
2018-05-11 16:44
一鑫
Rank: 2
等 级:论坛游民
帖 子:111
专家分:12
注 册:2018-4-12
收藏
得分:0 
回复 4楼 Pine_
问一下我哪一个是局部变量,我记得老师课上这道题是用全局变量的,我的resultr和resulti是全局变量   疑惑
2018-05-11 16:46
青蝶
Rank: 2
等 级:论坛游民
帖 子:160
专家分:51
注 册:2018-2-4
收藏
得分:0 
把那两个变量放到main函数里面
#include<stdio.h>
void isadd(float r1,float r2,float i1,float i2,float *pr,float *pi)
{
    *pr=r1+r2;
    *pi=i1+i2;
}
void iscf(float r1,float r2,float i1,float i2,float *pr,float *pi)
{
    *pr=r1*r2-i1*i2;
    *pi=r1*i2-r2*i1;
}
int main()
{
    float r1,r2,i1,i2,resultr,resulti;
    printf("输入第一个复数");
    scanf("%f,%f",&r1,&i1);
    printf("输入第二个复数");
    scanf("%f,%f",&r2,&i2);
    isadd(r1,r2,i1,i2,&resultr,&resulti);
    printf("%.0f+%.0fi=和值\n",resultr,resulti);
    iscf(r1,r2,i1,i2,&resultr,&resulti);
    printf("%.0f+%.0fi=乘值",resultr,resulti);
    return 0;
}
2018-05-11 16:47
童生
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:205
专家分:455
注 册:2018-3-7
收藏
得分:1 
楼上两位是两囗子么?唉
2018-05-11 16:47
一鑫
Rank: 2
等 级:论坛游民
帖 子:111
专家分:12
注 册:2018-4-12
收藏
得分:0 
还是不行
2018-05-11 16:50
童生
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:205
专家分:455
注 册:2018-3-7
收藏
得分:0 
看看是否超出了Float范围
2018-05-11 16:52
快速回复:一个复数运算问题
数据加载中...
 
   



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

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