c语言计算矩阵的n次方,N矩阵的n次方运算及折半查找报告--数据结构(C语言)

《N矩阵的n次方运算及折半查找报告--数据结构(C语言)》由会员分享,可在线阅读,更多相关《N矩阵的n次方运算及折半查找报告--数据结构(C语言)(8页珍藏版)》请在人人文库网上搜索。

1、数据结构作业报告N矩阵的n次方运算报告折半查找报告姓名:江海强班级:070921班学号:07092007上机时间:2010-9-29报告时间:2010-9-10摘要1.实验目的本实验主要是让我们了解函数的调用与返回,理解递归函数的执行过程,学会利用递归函数解决实际问题。2.实验方法本程序利用全局数组变量bNN来统筹整个程序,有一个主函数和一个子函数,其中子函数为矩阵换算的函数,也作为递归函数。而递归就是本程序的主要实验方法。本程序也定义了一个全局指针变量*mid,也是有一个主函数和一个子函数,其中子函数为折半查找的函数,也作为递归函数。而递归也就是本程序的主要实验方法。3.实验结果由运行出来的。

2、结果可以看出,即使为一次方,此矩阵运算的结果与实际运算得到的结果完全是一样,所以此程序是正确的,成功的。由运行出来的结果可以看出,折半查找所找到的数的位置经过验证也是正确、无误的。即使输入要查找的数不在数组中,则程序会输出error来说明查找失败。故此程序也是正确的,成功的。注:这两个程序是用C语言编辑完成的。其中代表的是N矩阵的n次方运算的程序设计,代表的是折半查找的程序设计,如果没有特别说明,以下的都是代表这样的意思。内容一问题重述给出一个N阶矩阵A,利用递归编程快速计算矩阵A的n次幂给出一组按从小到大排序的数组,利用递归编程实现折半查找,查找出所要求查找的数所在的位置二算法描述这两个程序。

3、除了运用一些条件语句,判断语句之外,主要运用了递归算法。本程序中的子函数的复杂度为O(N2+N2+N3),即为O(N3),而递归算法运用了子函数N-1次,所以复杂度为(N-1)O(N3)。本程序中折半查找的平均查找长度为ASL,要考虑到是否查找成功,则开始输入N阶矩阵aNN结束调用子函数jzhs()输出运用for循环计算矩阵相乘再自身调用子函数jzhs()再调用直到调用了子函数N-1次为止再运用for循环计算矩阵相乘结束输出开始直到调用到*mid=key或者key不存在数组中输入数组aN和所要查找的数key自身调用子函数search(a,key,lo,(mid-)自身调用子函数search(a。

4、,key,(mid+),hi)调用子函数seach()是*midkey?否运用for语句赋值*mid,比较*mid与key的大小先不讨论*mid=key三变量说明全局变量N代表的是矩阵为N阶,全局变量n代表的是N阶矩阵的n次方,而aNN则代表的是N阶矩阵。全局变量N代表的是数组aN的个数,key是所要查找的数,*lo、*hi和*mid分别代表数组的头、尾和中间指针,并且随着运算而变化。四函数与思路说明本程序分为一个主函数和一个子函数,其中子函数为jzhs()子函数。其中jzhs()子函数将主函数中调入的N阶矩阵,通过三个for循环,计算出N阶矩阵的二次方。再将得出的矩阵和原来的矩阵自身调用,输。

5、入到jzhs()子函数中,即得到N阶矩阵的三次方,利用这样的递归进行运算直到算出矩阵的n次方为止。本程序也分为一个主函数和一个子函数,其中子函数为seach()子函数。其中seach()子函数将主函数调入的数组,通过指针指向数组的头和尾,求出*mid指向中间数组。若*midkey,则调用自身函数search(a,key,lo,(mid-),直到查找到所要查的数或者要查找的数不在数组中为止。:1.第一次运行结果:从小到大排序好的数列为:1 2 3 4 5 6 7 8 9要查找的数是:4查找到的数是:4其存储位置为:0012FF602.第二次运行结果:从小到大排序好的数列为:1 2 3 4 5 6。

6、 7 8 9要查找的数是:9查找到的数是:9其存储位置为:0012FF743.第三次运行结果:从小到大排序好的数列为:1 2 3 4 5 6 7 8 9要查找的数是:11error五程序执行结果:1.第一次运行结果:输入的3阶矩阵为:1 1 11 1 11 1 13阶矩阵的4次幂的矩阵为:27 27 2727 27 2727 27 272.第二次运行结果:输入的3阶矩阵为:1 0 00 1 00 0 13阶矩阵的4次幂的矩阵为:1 0 00 1 00 0 13.第三次运行结果:输入的3阶矩阵为:1 2 34 5 67 8 93阶矩阵的1次幂的矩阵为:1 2 34 5 67 8 9六结论由上面的。

7、运行结果可以看出,矩阵运算结果是正确的,折半查找也是正确的。在矩阵运算程序中,只要在全局变量N,n修改一下数据就可以改变矩阵的阶数和次方数,同样的,在折半查找中,改变数组的个数可以通过改变全局变量N,这样子会方便许多。七编程中遇到的问题以及解决方法在编程过程中,刚开始对矩阵的相乘不太熟悉,导致一些小错误,后来自己归纳矩阵相乘的规律很快就解决了这个问题。当编好程序,运行成功,也遇上了一个问题,就是当n=1时,即矩阵为一次矩阵,不用运算,反而输出错误。后来在原来的程序上增加了几条语句,调试几次就通过了。在刚刚开始的编程过程中,我把输出放在了子函数处,导致输出结果好几次,后来引入了全局指针*mid变。

8、量,把输出语句放回主函数处,从而解决了问题。编好程序之后,才发现没有把查找失败的情况算进去,后来就把子函数由void型修改为int型,通过return 1来说明查找成功,输出储存地址,return 0来说明查找失败。八附录:#include#define N 3#define n 4void jzhs(int xNN,int yNN,int z);int bNN=0;void main()int i,j,aNN;printf(输入的%d阶矩阵为:n,N);for(i=0;i#define N 9int search(int x,int key,int *p,int *q);int *mid=0;void main()int i,t,key,aN;printf(从小到大排序好的数列为:n);for(i=0;i*k) mid=t; break; if(*mid=key);else if(*midkey) search(a,key,lo,(mid-);if(*t=*k&*t!=key) return 0;return 1。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501461.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python二进制转十进制代码_代码将二进制转换为十进制

我写这段代码是为了把二进制转换成十进制,这不是最好的代码,因为我是初学者。代码如下:def bin_dec(a): binary_list list(str(a)) binary_list.reverse() g 1 double_list [1] for i in binary_list: g g * 2 double_list.append(g) dou…

JAVA入门级教学之(匿名内部类)

看了本文章你将知道什么是匿名内部类,如何熟练掌握并使用匿名内部类。如果你已经是大牛可以跳过,没有看的必要。 什么是匿名内部类What 先说类,我们都知道类用于描述客观世界里某一类对象的共同特征,对象是其具体体现。类可以被…

C 怎么读取Cpp文件_从PCD文件写入和读取点云数据

(1)学习向PCD文件写入点云数据建立工程文件ch2,然后新建write_pcd.cpp CMakeLists.txt两个文件write_pcd.cpp : #include <iostream> //标准C库中的输入输出的头文件 #include <pcl/io/pcd_io.h> //PCD读写类相关的头文件 #include <pcl…

JAVA入门级教学之(类之间究竟有哪几种关系呢)

关于计算机的一些专业名词的解释 1.泛化关系&#xff1a; 什么是泛化关系呢&#xff1f;简单来说就是一个子类继承父类&#xff0c;这就是一个泛化关系图例&#xff1a;或者说一个子接口继承父接口&#xff0c;这也是一个泛化关系图例&#xff1a;2.实现关系&#xff1a; 实…

既约分数蓝桥杯c语言,2021蓝桥杯C++第二届省赛

负载平衡题目描述有 \\(n\\) 台计算机&#xff0c;第 \\(i\\) 台计算机的运算能力为 \\(v_i\\)。有一系列的任务被指派到各个计算机上&#xff0c;第 \\(i\\) 个任务在 \\(a_i\\) 时刻分配&#xff0c;指定计算机编号为 \\(b_i\\)&#xff0c;耗时为 \\(c_i\\) 且算力消耗为 \\…

蓝桥杯c语言难还是JAVA难_蓝桥省一难如猛虎?宝刀助你一战成名!

为什么说[C语言网](C语言网 - 领先实用的编程在线学习网站)这是可以让编程萌新圆梦的的宝刀利器&#xff1f;相信大多数人会问&#xff0c;你是不是口若悬河&#xff0c;纸上谈兵呢&#xff1f;当然不是&#xff0c;下面笔者将为大家介绍一下&#xff0c;本人的编程经历。这些话…

c 字符串数组_在C++中将字符串转换为char数组

我们许多人遇到了错误‘cannot convert std::string to char[] or char* data type’。例如&#xff1a;Input : string s "geeksforgeeks" ;Output : char s[] { g, e, e, k, s, f, o, r, g, e, e, k, s } ;Input : string s "coding&q…

无法打开虚拟机“Ubuntu2” (D:\software\Ubuntu2.vmx): 未找到文件。 是否从库中移除“Ubuntu2”?

1.关闭虚拟机并重启 2.删除ubuntu目录的.lck文件 3.关闭电脑防火墙 4.点击ubuntu目录下的.vmx文件直接运行

51C语言编译后执行到一半,“C语言” 读书札记之[再续编译执行]

介绍上一篇a.out(hello&#xff0c;world程序)执行之后发生了什么&#xff1f;这次通过系统硬件和操作做粗略的描述&#xff0c;这样对我们也是有一些帮助的。如果中间若有误&#xff0c;请不吝赐教。从键盘上读取a.out命令当我们打开我们的终端的时候&#xff0c;shell程序会执…

linux 安装mysql8_MySQL 8.0与MariaDB 10.4,谁更易于填坑补锅?

作者介绍贺春旸&#xff0c;凡普金科DBA团队负责人&#xff0c;《MySQL管理之道&#xff1a;性能调优、高可用与监控》第一、二版作者&#xff0c;曾任职于中国移动飞信、安卓机锋网。致力于MariaDB、MongoDB等开源技术的研究&#xff0c;主要负责数据库性能调优、监控和架构设…

acm竞赛2016c语言真题,C语言acm竞赛习题集锦.doc

C语言acm竞赛习题集锦.doc杭州电子科技大学 acm 习题精选 第 1 页 共 21 页 目录 1、 数塔问题 2 2、 并查集类问题 4 3、 递推类问题 9 4、 动态规划系列 10 5、 概率类题型 13 6、 组合数学类题型 15 7、 贪心策略 16 8、 几何问题 .19 杭州电子科技大学 acm 习题精选 第 2 页…

JAVA入门级教学之(文档里的is-a、is-like-a、has-a到底是什么意思)

1.is-a&#xff1a;【什么什么是】 描述的是一个继承关系 2.is-like-a&#xff1a;【什么什么像】 描述的是一个接口关系 3.has-a&#xff1a;【什么什么包含】 描述的是一个关联关系

c语言死循环中输入字符,如下代码,如果输入字符,为什么会造成死循环?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼上面代码有误&#xff0c;本来switch语句是接收int型的&#xff0c;有死循环&#xff1b;有人建议改成接收字符&#xff0c;上面没改完全&#xff0c;现在改完全了&#xff0c;但是会重复输出&#xff0c;输出如下*** ACME checkbo…

python 字符转义_2500字 字符串专题总结

我的完整施工计划已完成专题&#xff1a;1.我的施工计划2.数值专题这篇是字符串专题总结除了常见的数值型&#xff0c;字符串是另一种常遇到的类型。一般使用一对单引号或一对双引号表示一个字符串。字符串中如果遇到 \ 字符&#xff0c;可能是在做字符转义&#xff0c;所谓的转…

JAVA入门级教学之(异常机制的原理到底是什么)

* 1.异常是什么&#xff1f; * * 第一&#xff1a;异常模拟的是现实世界中"不正常的"事件 * * 第二&#xff1a;java中采用"类"的形式去模拟异常 * * 第三&#xff1a;类是可以创建对象的 * * 例如&#xff1…

python修改列表指定位置的_Python 基础教程—列表(1)

Python内置了多种序列&#xff0c;本次讨论&#xff1a;列表。列表是Python提供的容器型数据类型。可变并且有序。可变 - 列表中的每个元素的值可变&#xff0c;列表的长度可变&#xff0c;列表中的顺序可变。(支持增、删、改)有序 - 每个元素可以通过下标来确定位置1、 列表的…

JAVA入门级教学之(深入throws的异常抛出机制)

package com.lbj.javase23; import java.io.*;public class ExceptionTest04 {public static void main(String[] args) throws FileNotFoundException{//使用throws处理异常不是真正处理异常而是推卸责任&#xff0c;谁调用就上抛给谁//上面的m1方法如果出现了异常&#xff0c…

android 代码 shape,Android Shape控件美化实现代码

如果你对Android系统自带的UI控件感觉不够满意&#xff0c;可以尝试下自定义控件&#xff0c;我们就以Button为例&#xff0c;很早以前Android123就写到过Android Button按钮控件美化方法里面提到了xml的selector构造。当然除了使用drawable这样的图片外今天Android开发网谈下自…

操作系统之(一篇文章让你简单搞定:什么是进程和线程)

文章目录1.为什么引入进程2.进程究竟是什么&#xff1f;进程的定义和属性&#xff1a;3.进程的状态和转换4.什么是进程上下文5.进程的控制和管理6.为什么要引入线程7.线程的概念8.引入线程的好处9.进程和线程的区别1.为什么引入进程 1、我们知道&#xff0c;最早出现的OS系统是…

冒泡和快速排序的时间复杂度_八大排序算法性能分析及总结

一、排序算法说明排序的定义&#xff1a;对一个无序的序列进行排序的过程。输入&#xff1a;n个数&#xff1a;a1,a2,a3,…,an。输出&#xff1a;n个数的排列:a1,a2,a3,…,an&#xff0c;使得a1<a2<a3<…<an。排序的稳定性&#xff1a;相同值的节点相对位置是否会发…