设计ー个算法,求ー元二次方程ax2+bx+c=0ax^2+bx+c=0ax2+bx+c=0的根。(P17 例1-5)

  • 解:该算法的输入为a、b和c,输出为根的个数和两个根,将a、b和c作为输人型形参,采用函数的返回值表示根的个数,用两个引用型形参x1和x2表示两个根。
//【例1.5】的算法:求一元二次方程的根
#include <stdio.h>
#include <math.h>
int solution(double a,double b,double c,double &x1,double &x2)
{   double d;d=b*b-4*a*c;if (d>0){  x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);return 2; //2个实根 }else if (d==0){  x1=(-b)/(2*a);return 1;//1个实根 } else return 0; //d<0的情况,不存在实根
}int main()
{double a=2,b=-6,c=3;double x1,x2;int s=solution(a,b,c,x1,x2);if (s==1) printf("一个根:x=%lf\n",x1);else if (s==2) printf("两个根:x1=%lf,x2=%lf\n",x1,x2);else printf("没有根\n");return 1;
}

P22 例1-9

//【例1.9】的算法:分析递归算法的时间复杂度
#include <stdio.h>
void fun(int a[],int n,int k) //数组a共有n个元素,执行时间为T1(n,k)
{int i;if (k==n-1) for (i=0;i<n;i++) printf("%d\n",a[i]); //该语句执行次数为nelse{    for (i=k;i<n;i++) a[i]=a[i]+i*i; //该语句执行次数为n-kfun(a,n,k+1); //执行时间为T1(n,k+1)}
}int main()
{int a[10]={0};fun(a,10,0);return 1;
}

《数据结构》上机实验(第九章) —查找

线性表中各结点的检索概率不等时,可用如下策略提高顺序检索的效率:若找到指定的结点,则将该结点和其前驱结点(若存在)交换,使得经常被检索的结点尽量位于表的前端。试设计在顺序结构和链式结构的线性表上实现上述策略的顺序检索算法。

使用顺序结构

int SeqSrch(RecType R[], int n, KeyType k)
{int i = 0, temp;while(i<n){if (R[i].key == k){temp = R[i].key;R[i].key = R[i - 1].key;R[i - 1].key = temp;return i;}else i++;}return 0;
}

运行结果

使用链式结构

int SeqSrch(LinkList& L, int n, KeyType k)
{int i = 1;LNode* p = L->next, * q, * r;if (p->data == k) return i; //第一个元素与关键值相等else if (p->next->data == k) //第二个元素与关键值相等{q = p->next;L->next = q;p = q->next;q->next = p;return i;}else //其他情况{i = 3; //位序从3开始r = p; //当前结点的前驱结点的前驱结点(初始指向单链表中第一个结点)q = p->next; //当前结点的前驱结点(初始指向单链表中第二个结点)p = p->next->next; //当前结点(初始指向单链表中第三个结点)while (p != NULL){if (p->data != k) //当前结点的数据域与关键值不匹配{i++; //位序增加p = p->next; //三个指针同步后移q = q->next;r = r->next;}else //找到与关键值相等的数据域结点{r->next = p; //将当前结点与其前驱结点进行交换q->next = p->next;p->next = q;return i - 1; //返回交换后的位序}}return 0; //查找失败,返回0}
}

运行结果

《数据结构教程(李春葆主编 第五版)》第一章源代码 + 《数据结构》上机实验(第九章) —查找相关推荐

  1. 《数据结构教程(李春葆主编 第五版)》第七章源代码—树和二叉树

    二叉树的基本运算算法 #include <stdio.h> #include <malloc.h> #define MaxSize 100 typedef char ElemT ...

  2. 《数据结构》 李春葆 第一章-绪论

    <数据结构> 李春葆 第一章-绪论 1 什么是数据结构 1.1 数据结构的定义 1.2 逻辑结构 1.2.1 逻辑结构的表示 1 什么是数据结构 数据元素以及数据元素之间的关系,数据元素= ...

  3. C语言程序设计第五版谭浩强课后答案 第六章《利用数组处理批量数据》习题答案 (大一大二、考研、计算机二级必看)

    第六章<利用数组处理批量数据>习题答案 1. 用筛选法求100之内的素数 2. 用选择法对10个整数排序 3. 求一个3 X 3的整形矩阵对角线元素之和 4. 有一个已经排好序的数组,要求 ...

  4. 《数据结构教程》(李春葆 主编)课后习题【练习题6】

    [6.5] 1 #include <iostream> 2 3 using namespace std; 4 #define MAXN 100 5 #define N 4 6 #defin ...

  5. Java数据结构第五版期末考试_数据结构(java)期末复习

    [单选题]多基因遗传病的发病风险与下列哪个因素无关 [单选题]一般手锯的往复长度不应小于锯条长度的( ). [判断题]机器上所有;零件都必须进行机械加工. [单选题]一般划线精度能达到( ). [填空 ...

  6. 计算机组成原理课后答案(白中英主编第五版).pdf

    链接:https://pan.baidu.com/s/1xilgPWVd20lJ8INKfk_eAw 提取码:6666

  7. 《Python程序设计与算法基础教程(第二版)》江红 余青松,第九章课后习题答案

    推荐阅读 <Python程序设计与算法基础教程(第二版)>江红 余青松 全部章节的课后习题,上机实践,课后答案,案例研究 文章目录 例9.1~例9.53 填空题:2 思考题:3~11 上机 ...

  8. C语言程序设计(第五版)谭浩强著 第5章习题答案

    1. 略 2.请补充例5.7程序,分别统计当"fabs(t)>=1e-6"和"fabs(t)>=1e-8"时执行循环体的次数. 解题思路: 设置一个 ...

  9. 电路 第五版 第一章 电路模型和电路定律

    第一章 电路模型和电路定律 1-1电路和电路模型 1-2电流和电压的参考方向 1-3电功率和能量 1-4电路元件 1-5电阻元件 1-6电压源和电流源 1-7受控电源 1-8基尔霍夫定律

  10. 数值分析(第五版) 第一章知识点总结

    仅供大致参考,有许多定义存在不严谨的地方:不同学校的考察重点自然是不同的 第一章 绪论 舍入误差 由于计算机字长是有限的,因此在存储数据时便可能不可避免地丢失部分信息,这便是舍入误差. 截断误差 由于 ...

最新文章

  1. 石头剪刀布python代码_我的第一个python程序,石头剪刀布猜拳游戏
  2. 10.1.3 标签分类与嵌套
  3. 推荐一些vue.js热门好用的框架组件
  4. MySQL 复制:最简单也最容易配置出错
  5. 计算机语言排行榜2018年9月,2018年9 月编程语言排行榜JAVA稳占第一
  6. eclipse3.7.2+KEmulator搭建J2ME开发环境
  7. magic4.0跟harmonyos,支持升级Harmony 2.0 Magic UI 4.0 9月中旬招募公测
  8. jQuery幻灯片插件Skippr
  9. 大学生网页设计模板 静态HTML个人主页网页作业成品 DIV CSS个人介绍主题静态网页
  10. PanDownload 复活了!60MB/s!附下载地址
  11. 要成就事业,更要分享快乐 记上海润邦(集团)有限公司董事长兼总经理李东
  12. 关于DP和HDMI和VGA和RS232这几种接口的实用性和功能性分析
  13. 如何判断您是否拥有32位或64位版本的Google Chrome浏览器
  14. PDN 电源分配网络设计步骤 PDN layout步骤
  15. js 将微信二维码转为url,qrcodeJs解析二维码,qrcode.decode is not a function报错
  16. Transformer 新型神经网络在机器翻译中的应用
  17. canal工作原理及简单案例演示
  18. 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
  19. vue3 语法之 父组件,子组件之间的数据传递
  20. MediaCoder字幕乱码问题

热门文章

  1. 按照计算机病毒存在,下列选项中,不属于按照计算机病毒存在的方式分类的是()。 - 问答库...
  2. 语句块是什么意思python_《语》字意思读音、组词解释及笔画数 - 新华字典 - 911查询...
  3. c语言投票系统程序,C语言智能投票系统.doc
  4. Python带HTML表格图片的自动邮件发送
  5. unity 将 .prefab 转换为 txt 格式
  6. msl3等级烘烤时间_msl湿敏等级对应表
  7. 计算机里面的Profile怎么翻译比较好?
  8. 详解VB对话框InputBox和MsgBox
  9. Linux内核5.0版本五大模块及内核书籍推荐
  10. 美国电影超短200句(看英文原版电影很有用的!)(转)