首页 > 编程语言 >林小茶 C语言程序设计 第八章8.2/8.3答案(可直接运行)

林小茶 C语言程序设计 第八章8.2/8.3答案(可直接运行)

时间:2024-08-17 16:28:19浏览次数:13  
标签:p3 8.3 8.2 num struct void 林小茶 COMPLEX p1

【8.2】定义结构体类型COMPLEX表示复数,实数部分名为rp,虚数部分名为ip,都用整形表示。编写一套函数,实现复数运算,并用函数调用这些函数。函数包括:
(1)读一个复数(2)输出一个复数(3)计算这两个复数的和(4)计算着两个复数的积(5)计算一个复数的平方
#include<stdio.h>
struct COMPLEX{
	int rp;
	int ip;
};
int main(){
	void read(struct COMPLEX *p1);
	void print(struct COMPLEX *p1);
	void sum(struct COMPLEX p1,struct COMPLEX p2,struct COMPLEX *p3);
	void mul(struct COMPLEX p1,struct COMPLEX p2,struct COMPLEX *p3);
	void sq(struct COMPLEX p1,struct COMPLEX *p3);
	struct COMPLEX p1,p2,p3;
	read(&p1);
	print(&p1);
	read(&p2);
	print(&p2);
	sum(p1,p2,&p3);
	mul(p1,p2,&p3);
	sq(p1,&p3);
	return 0;
}
void read(struct COMPLEX *p1){
	scanf("%d%d",&p1->rp,&p1->ip);
}
void print(struct COMPLEX *p1){
	if(p1->ip<0){
		printf("%d%di\n",p1->rp,p1->ip);
	}else{
		printf("%d+%di\n",p1->rp,p1->ip);
	}
}
void sum(struct COMPLEX p1,struct COMPLEX p2,struct COMPLEX *p3){
	p3->rp=p1.rp+p2.rp;
	p3->ip=p1.ip+p2.ip;
	print(p3);
}
void mul(struct COMPLEX p1,struct COMPLEX p2,struct COMPLEX *p3){
	p3->rp=p1.rp*p2.rp-p1.ip*p2.ip;
	p3->ip=p1.rp*p2.ip+p1.ip*p2.rp;
	print(p3);
}
void sq(struct COMPLEX p1,struct COMPLEX *p3){
	p3->rp=p1.rp*p1.rp+p1.ip*p1.ip;
	p3->ip=2*p1.rp*p1.ip;
	print(p3);
}
输入示例:1

2

3

4

输出示例:

可能可读性不强,是小编的问题,我会继续改正的!

【8.3】定义结构体类型RATIONAL表示一个有理数的分母和分子,分母命名为d和分子命名为n;
都用整型数表示。编写一套韩束,实现有理数的计算,并用主函数调用这些函数。函数包括:(1)计算和返回n和d的最大公约数;
(2)对有理数进行约分,分母和分子都还原成最小项;
(3)读入一个有理数,注意分母不为0;
(4)输出一个有理数;
(5)计算两个有理数的和;
#include<stdio.h>
struct RATIONAL{
	int d;
	int n;
};
int main(){
	void read(struct RATIONAL *num);
	int max(struct RATIONAL *num);
	void min(struct RATIONAL *num);
	void print(struct RATIONAL *num);
	void sum(struct RATIONAL *num,struct RATIONAL *num2);
	struct RATIONAL num1,num2;
	printf("输入第一个数");
	read(&num1);
	min(&num1);
	printf("第一个数为:"); 
	print(&num1);
	printf("输入第二个数");
	read(&num2);
	min(&num2);
	printf("第二个数为:");
	print(&num2);
	printf("和为");
	sum(&num1,&num2);
return 0;
}
void read(struct RATIONAL *num){
	scanf("%d%d",&num->n,&num->d);
	if(num->d==0){
		printf("error");
		read(num);
	}
}
int max(struct RATIONAL *num){
	struct RATIONAL x;
	int a;
	x.d=num->d;
	x.n=num->n;
	if(x.d<x.n){
		a=x.d;
		x.d=x.n;
		x.n=a;
	}
	while(x.n!=0){
		a=x.d%x.n;
		x.d=x.n;
		x.n=a;
	}
	return x.d;
}
void min(struct RATIONAL *num){
	int x=max(num);
	num->d=num->d/x;
	num->n=num->n/x;
}
void print(struct RATIONAL *num){
	printf("%d/%d\n",num->n,num->d);
}
void sum(struct RATIONAL *num1,struct RATIONAL *num2){
	num1->n=num1->d*num2->n+num2->d*num1->n;
	num1->d=num1->d*num2->d;
	min(num1);
	print(num1);
}
运行结果如下:

这是分母输入为0的情况:

两个更多考察的是数学能力,小编好久没学数学已经忘了很多了所以即使恶补了一下,希望大家多多包涵~有问题随时提出,大家一起交流讨论~

标签:p3,8.3,8.2,num,struct,void,林小茶,COMPLEX,p1
From: https://blog.csdn.net/qq_64385230/article/details/141282368

相关文章

  • 240814-作物模型DSSAT4.8.2的安装过程
    1.DSSATV4.8.2的下载软件下载需要从DSSAT官网邮件申请,一周左右会反馈下载链接。下面的链接是我于2024年8月从官网申请的链接。https://get.dssat.net/dssat-download-v4-8/?sk=48082410753我下载好后上传到了百度网盘,下面的是百度网盘下载链接。通过百度网盘分享的文件:DSSA......
  • WPS Office 2023专业版 v12.8.2.17149v2 精简优化版
    概述WPSOffice是由金山软件股份有限公司自主研发的一款办公软件套装,可以实现办公软件最常用的文字、表格、演示等多种功能。具有内存占用低、运行速度快、体积小巧、强大插件平台支持、免费提供海量在线存储空间及文档模板、支持阅读和输出PDF文件、全面兼容微软Office97-2010格......
  • 8.3
    HDFS概述:向磁盘中写入数据的时间一般是读取时间的3倍。HDFS以流处理访问模式来存储文件的,一次写入,多次读取。磁盘存储文件时,是按照数据块来进行存储的,数据块是磁盘读写的最小单位。构建与的那个磁盘上的文件系统是通过磁盘块来管理文件系统,文件系统块的大小一般是磁盘块的整......
  • Labels and Databases for Mac( 数据库标签制作软件)1.8.2中文版
    LabelsandDatabasesforMac一款数据库标签制作和设计软件。LabelsandDatabases版可以帮助您使用各种内置标签格式创建标签、信封和卡片,并使用用户数据库中包含的信息填充它们,即使用MailMerge创建和打印标签。LabelsandDatabasesforMac软件下载地址Labelsand......
  • [转]相同CRC不同数据的测试.CRC16 - CRC64 test results on 18.2M dataset
    转载自: http://www.backplane.com/matt/crc64.html  CRC16-CRC64testresultson18.2Mdataset,w/programsourceProgram&TestRunbyMattDillon18.2Mmessage-iddatasetsuppliedbyJoeGrecoIwouldliketothankeveryonewhoofferedtheirhistoryf......
  • K8S云原生-高可用集群部署V1.28.2
    一、环境准备K8S集群角色IP主机名安装相关组件master10.1.16.160hqiotmaster07lapiserver、controller-manager、scheduler、kubelet、etcd、docker、kube-proxy、keepalived、nginx、calicomaster10.1.16.161hqiotmaster08lapiserver、controller-manager、sc......
  • ACM日常训练日记——8.2
    小训练KevinandPermutation题解很好不多说#include<bits/stdc++.h>usingnamespacestd;intT,n;intmain(){ cin>>T; while(T--){ cin>>n; for(inti=1;i<=n/2;i++)cout<<i+n/2<<''<<i<<''; ......
  • 8.2 PTA练习
    6-7统计某类完全平方数 本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。函数接口定义:intIsTheNumber(constintN);其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0。裁判测试程序样例:#incl......
  • 8.2 模拟赛
    总结今天的暴力打的还行T1的卷积优化dp是真不会。T2正解如果花时间是好想的,赛时在做t3。t3会了性质,但是不会维护。t4乱搞。题解monster暴力dp显然,考虑优化。设\(f_{i,j}\)表示选了\(i\)个非负整数,和为\(j\)的最大的\(\sums\),直接做背包是\(\mathcalO......
  • 2024.7.29至2024.8.2周总结
    本周学习任务清单DP优化:单调队列优化、矩阵优化、前缀和优化、线段树优化等ACM模拟赛图论:最小生成树、最短路、欧拉图、强连通分量、缩点、割点、双联通分量。总结本周学习任务不算太大,ACM也让我认识到了如今题目的考察范围和难度,DP优化的基础是暴力DP,我认为这一块是我的......