《C语言及程序设计》实践参考——复数结构体

返回:贺老师课程教学链接

【项目1-复数结构体】

编写一个程序,首先定义一个复数数据类型,即结构类型。然后按照复数的运算规则进行计算,并按照复数表示的格式进行输出,请将程序补充完整。

#include <stdio.h>
struct complex
{
    int re;
    int im;
};
int main()
{
    struct complex x,y,s,p;
    scanf("%d%d",&x.re,&x.im);
    scanf("%d%d",&y.re,&y.im);
    //复数s是复数x和y的和
    s.re=_______(1)_______;
    s.im=_______(2)_______;
    printf("   sum=%5d+%5di\n",s.re,s.im);
    //复数p是复数x和y的积
    p.re=_______(3)_______;
    p.im=x.re*y.im+x.im*y.re;
    printf("   product=%5d+%5di\n",p.re,p.im);
    return 0;
}

[参考解答]

#include <stdio.h>
struct complex
{
    int re;
    int im;
};
int main()
{
    struct complex x,y,s,p;
    scanf("%d%d",&x.re,&x.im);
    scanf("%d%d",&y.re,&y.im);
    //复数s是复数x和y的和,规则(a+bi)+(c+di)=(a+c)+(b+d)i.
    s.re=x.re+y.re;
    s.im=x.im+y.im;
    printf("sum=%d+%di\n",s.re,s.im);
    //复数p是复数x和y的积,规则:(a+bi)(c+di)=(ac-bd)+(bc+ad)i
    p.re=x.re*y.re-x.im*y.im;
    p.im=x.re*y.im+x.im*y.re;
    printf("product=%d+%di\n",p.re,p.im);
    return 0;
}
时间: 2024-10-26 17:33:53

《C语言及程序设计》实践参考——复数结构体的相关文章

《C语言及程序设计》实践参考——点结构体

返回:贺老师课程教学链接 [项目3-点结构体] 下面定义了一个表示平面上一点的结构体类型: struct Point { float x; //横坐标 float y; //纵坐标 }; (1)请编写程序,输入一点的横纵坐标,输出该点到原点的距离 [参考解答] #include <stdio.h> #include <math.h> struct Point { float x; float y; }; int main() { struct Point p; float d; p

《C语言及程序设计》实践参考——日期结构体

返回:贺老师课程教学链接 [项目6-日期结构体] (1)定义一个结构体变量(包括年.月.日),要求输入年.月.日,计算输出该日是该年的第几天. #include <stdio.h> struct Date { int year; int month; int day; }; int main() { struct Date date; printf("input year,month,day:"); scanf("%d %d %d", &date

C语言及程序设计进阶例程-12 结构体成员的引用

贺老师教学链接  C语言及程序设计进阶 本课讲解 结构体作函数参数 #include <stdio.h> struct Student { int num; char name[20]; char sex; int age; double score; char addr[30]; }; void print(struct Student s) { printf("%d %s %c\n", s.num, s.name, s.sex); //可再加-- return; } i

C语言及程序设计进阶例程-13 结构体数组及其应用

贺老师教学链接  C语言及程序设计进阶 本课讲解 结构体数组应用举例 #include <stdio.h> #include <string.h> typedef struct { char name[20]; int count; } Person; int main( ) { Person person[3]= {{"Li",0},{"Zhang",0},{"Fun",0}}; int i,j; char name[2

《C++语言基础》实践参考——复数模板类

返回:贺老师课程教学链接 [项目6-复数模板类]    阅读教材例10.1.该例实现了一个复数类,但是美中不足的是,复数类的实部和虚部都固定只能是double型的.可以通过模板类的技术手段,设计Complex,使实部和虚部的类型为定义对象时指定的实际类型.    (1)要求类成员函数在类外定义.    (2)在此基础上,再实现减法.乘法和除法    你可以使用的main()函数如下. int main( ) { Complex<int> c1(3,4),c2(5,-10),c3; //实部和虚

《C++语言基础》实践参考——复数类中的运算符重载(续)

返回:贺老师课程教学链接 项目要求 [项目1-复数类中的运算符重载(续)]在复数类中的运算符重载基础上(1)再定义一目运算符 -,-c相当于0-c.(2)定义Complex类中的<<和>>运算符的重载,实现输入和输出,改造原程序中对运算结果显示方式,使程序读起来更自然.[参考解答] #include <iostream> using namespace std; class Complex { public: Complex() { real=0; imag=0; }

go语言通过反射获取和设置结构体字段值的方法_Golang

本文实例讲述了go语言通过反射获取和设置结构体字段值的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: type MyStruct struct {         N int } n := MyStruct{ 1 } // get immutable := reflect.ValueOf(n) val := immutable.FieldByName("N").Int() fmt.Printf("N=%d\n", val) // prints

《C++语言基础》实践参考——点、圆的关系

返回:贺老师课程教学链接  项目要求 [项目4 - 点.圆的关系](1)先建立一个Point(点)类,包含数据成员x,y(坐标点):(2)以Point为基类,派生出一个Circle(圆)类,增加数据成员(半径),基类的成员表示圆心:(3)编写上述两类中的构造.析构函数及必要运算符重载函数(本项目主要是输入输出):(4)定义友元函数int locate,判断点p与圆的位置关系(返回值<0圆内,==0圆上,>0 圆外): int main( ) { Circle c1(3,2,4),c2(4,5,

C++程序设计-第2周结构体应用

第一部分 程序阅读 下面的程序建立起了如图所示的动态链表.阅读程序,在草稿纸上画出链表建立的过程,借此学会如何建立链表.可以通过单步执行以辅助理解 #include <iostream> using namespace std; struct Student { long num; float score; struct Student *next; }; int main( ) { Student *head=NULL,*p,*q; //下面的程序建立起一个有三个节点的动态链表 for(in