| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2138 人关注过本帖
标题:一个复数运算问题
只看楼主 加入收藏
童生
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:205
专家分:455
注 册:2018-3-7
收藏
得分:0 
全局变量程序没有错,应该超范围了
2018-05-11 16:54
一鑫
Rank: 2
等 级:论坛游民
帖 子:111
专家分:12
注 册:2018-4-12
收藏
得分:0 
没有 我把老师的发出来 你们看看 对比我那一个,是什么情况
2018-05-11 16:55
一鑫
Rank: 2
等 级:论坛游民
帖 子:111
专家分:12
注 册:2018-4-12
收藏
得分:0 
#include <stdio.h>
float  result_r, result_i ;  //全局变量,用于保存函数结果
void  complex_add(float r1,float i1,float r2,float i2);
void  complex_prod(float r1,float i1,float r2,float i2);
void  main( )
{     float  real1, imag1, real2, imag2;        //局部变量
      printf("输入复数1:");
      scanf("%f,%f", &real1, &imag1 );
      printf("输入复数2:");
      scanf("%f,%f", &real2, &imag2 );
      complex_add(real1, imag1, real2, imag2); //复数加法
      printf("和值=%.0f+%.0fi\n",result_r, result_i);
      complex_prod(real1, imag1, real2, imag2);//复数乘法
      printf("乘积=%.0f+%.0fi",result_r, result_i);
}
void  complex_add(float r1,float i1,float r2,float i2)
{
       result_r = r1 + r2;
       result_i = i1 + i2;
}
void  complex_prod(float r1,float i1,float r2,float i2)
{
       result_r = r1 * r2 - i1 * i2;
       result_i = r1 + i2 + r2 * i1;
}
2018-05-11 16:55
童生
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:205
专家分:455
注 册:2018-3-7
收藏
得分:0 
加法正常减法不正常,是不是相减后的值过小?
2018-05-11 17:00
一鑫
Rank: 2
等 级:论坛游民
帖 子:111
专家分:12
注 册:2018-4-12
收藏
得分:0 
不清楚,用我的代码就是乘值的那一条式子都为0
2018-05-11 17:14
一鑫
Rank: 2
等 级:论坛游民
帖 子:111
专家分:12
注 册:2018-4-12
收藏
得分:0 
理解了
2018-05-11 17:36
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
收藏
得分:1 
你试试这个:
程序代码:
#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",&r1);
    printf("输入第一个复数虚部:");
    scanf("%f",&i1);
    printf("输入第二个复数实部");
    scanf("%f,%f",&r2);
    printf("输入第二个复数虚部");
    scanf("%f,%f",&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 18:01
nosnoy
Rank: 9Rank: 9Rank: 9
来 自:mcu
等 级:贵宾
威 望:14
帖 子:541
专家分:1178
注 册:2016-9-17
收藏
得分:1 
回复 楼主 一鑫
老哥你确定你输入对了?
输入
1,3
3,3
试试 没问题啊

穷举是最暴力的美学
2018-05-11 18:08
nosnoy
Rank: 9Rank: 9Rank: 9
来 自:mcu
等 级:贵宾
威 望:14
帖 子:541
专家分:1178
注 册:2016-9-17
收藏
得分:0 
回复 楼主 一鑫
#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;//老哥这里应该是加号吧 复数乘法
           z1=a+bi,z2=c+di(a、b、c、d∈R)是任意两个复数,那么它们的积(a+bi)(c+di)=(ac-bd)+(bc+ad)i.
}
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;
}

穷举是最暴力的美学
2018-05-11 18:13
快速回复:一个复数运算问题
数据加载中...
 
   



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

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