| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 578 人关注过本帖
标题:怎么继续做啊
只看楼主 加入收藏
老男孩123
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2013-9-6
结帖率:62.5%
收藏
已结贴  问题点数:20 回复次数:2 
怎么继续做啊

复数实部和虚部可作为结构体类型的两个成员,分别编写加减乘除四个函数完成两个复数的四则运算,并在main()中调用,要求结构体变量作为参数,返回值类型是结构体。





#include<stdio.h>
struct fushu
{
    int shi;
    int xu;
};
struct jia(struct fushu int x, int y)
{
    struct fushu s;
    s.shi=x.shi+y.shi;
    s.xu=x.xu+y.xu;
    return(s);
}

struct jian(struct fushu int x,int y)
{
   
    struct fushu s;
    s.shi=x.shi-y.shi;
    s.xu=x.xu-y.xu;
    return(s);
}
struct cheng(struct fushu int x,int y )
{
   
     struct fushu s;
    s.shi=x.shi*y.shi-x.xu*y.xu;
    s.xu=x.shi*y.xu+y.shi*x.xu;
    return(s);
}
struct chu(struct fushu int x,int y )
{
      struct fushu s;
      s.shi=(x.shi*y.shi+x.xu*y.xu)/(pow(y.shi,2)+pow(y.xu,2));
      s.xu=(x.xu*y.shi-x.shi*y.xu)/(pow(y.shi,2)+pow(y.xu,2));
      return(s);
}
void main()
{

    struct fushu s;
    scanf("%d %d",&s.shi,&s.xu);
    int a,b,c,d;
    a=jia(x,y);
    b=jian(x,y);
    c=cheng(x,y);
    d=chu(x,y);
}
搜索更多相关主题的帖子: include return 结构体 cheng 
2013-09-12 18:54
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:10 
struct fushu
{
    int shi;
    int xu;
};

struct jia(struct fushu int x, int y)
这个原型不对吧
至少也要
struct fushu jia(sturct fushu x,struct fushu y);

更加简单的做法是
typedef struct
{
    double real;
    double imagery;   
}Complex;

Complex add(Complex x, Complex y);

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-09-12 21:11
youngdavid
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:107
专家分:698
注 册:2012-9-24
收藏
得分:10 
楼主的程序有很多方面的问题,首先复数结构里面是float类型,而不是整型;而且定义了
struct fushu
{
    int shi;
    int xu;
};
之后 这儿的struct fushu就一起相当于int、float之类,所以你函数原型应该是struct fushu jia(sturct fushu x,struct fushu y);加减乘除都要改,最后,因为你加减乘除返回的是复数结构体,因此你main函数里面abcd应该定义为struct fushu类型。还有就是你用了pow函数,在前面要包含math头文件。把问题都改过后的代码如下:
程序代码:
#include<math.h>
#include<stdio.h>
struct fushu
{
    float shi;
    float xu;
};
struct fushu jia(struct fushu x, struct fushu y)
{
    struct fushu s;
    s.shi=x.shi+y.shi;
    s.xu=x.xu+y.xu;
    return(s);
}
struct fushu jian(struct fushu x,struct fushu y)
{

 
    struct fushu s;
    s.shi=x.shi-y.shi;
    s.xu=x.xu-y.xu;
    return(s);
}
struct fushu cheng(struct fushu x,struct fushu y )
{

 
     struct fushu s;
    s.shi=x.shi*y.shi-x.xu*y.xu;
    s.xu=x.shi*y.xu+y.shi*x.xu;
    return(s);
}
struct fushu chu(struct fushu x,struct fushu y )
{
      struct fushu s;
      s.shi=(x.shi*y.shi+x.xu*y.xu)/(pow(y.shi,2)+pow(y.xu,2));
      s.xu=(x.xu*y.shi-x.shi*y.xu)/(pow(y.shi,2)+pow(y.xu,2));
      return(s);
}
void main()
{
    struct fushu x;
    scanf("%f %f",&x.shi,&x.xu);
    struct fushu y;
    scanf("%f %f",&y.shi,&y.xu);
    struct fushu a,b,c,d;
    a=jia(x,y);
    b=jian(x,y);
    c=cheng(x,y);
    d=chu(x,y);
printf("x=%f+%fi\n",x.shi,x.xu);
printf("y=%f+%fi\n",y.shi,y.xu);
printf("a=x+y=%f+%fi\n",a.shi,a.xu);
printf("b=x-y=%f+%fi\n",b.shi,b.xu);
printf("c=x*y=%f+%fi\n",c.shi,c.xu);
printf("d=x/y=%f+%fi\n",d.shi,d.xu);
}

2013-09-12 23:06
快速回复:怎么继续做啊
数据加载中...
 
   



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

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