一 素数、随机数、最大值和最小值 (1) 判断一个数是否为素数 素数:只能被1和它本身整除的数。 要判断一个正整数m是不是素数,需 要用大于1且小于它本身的正整数去除它 ,只要它能被其中的一个数整除,就说明 它不是素数。若所有的数都不能被它整除 ,说明它是素数。 例1:输出3—100之间的所有素数 main() { int i,n,k=0; for(n=3;nmax) max=a[i]; if(a[i]=1e-5) { x0=x; f=((2*x0-4)*x0+3)*x0-6; f1=(6*x0-8)*x0+3; x=x0-f/f1; } printf(“%10.8f \n“,x); } 四、数字分离 有些题中经常要求将一个数中的每一位 数字或者其中的某些位数字输出,就需要使 用到数字分离技术。 如在求解同构数等问题时都需要使用到 数字分离技术 例:给出一个不多于4位的正整数,要求:求出 它是几位数,并且按逆序打印出各位数字 main() { int i,j,k=0; scanf(“%d“, while(i!=0) { printf(“%4d“,i%10); i=i/10; k++; } printf(“\nk=%d\n“,k); } 四、以特殊字符做为终止标志 例:统计从键盘输入字符的个数,以'#'结束。 #include “stdio.h“ main() { char c; int i; c=getchar(); for(i=0; c!='#'; i++) c=getchar(); printf(“the number is:%d“,i); } 五、排序问题 常用的排序方法有四种: 顺序交换法、选择法、冒泡法、插入法 a.顺序排序法(n=10) 指导思想:先设定a[0]中存放最小值,然后用 a[0]分别与其后的每一个数a[j](j=19)进行比 较,在比较过程中如果发现有比a[0]小的数,就 将a[0]与a[j]互换,一遍扫描之后,a[0]就是10 个数中最小的数,重复此算法,只是每次比较 时,进行比较的数的范围向后移一个位置。反 复执行(n-1)次上述操作 例1:将数组a中的10个数按照由大到小的 顺序排好(使用顺序交换法) #define N 10 main( ) { int a[N],i,j,k,t; for(i=0;ix) break; /* 找到待插入的位置i */ for (j=n-1;j=i;j--) a[j+1]=a[j]; /* 从a[i]到a[n-1]之间的数组军后移一 位*/ a[i]=x; /*把数据x放到a[i]位置处*/ for (i=0;i=0;i --) if(str[i]==c) { for(k=i;str[k]!='\0';k++) str[k]=str[k+1]; str[k]='\0'; } puts(str); } 练习2、编写程序,比较两个字符串的 大小。(不能使用strcmp()函数) z比较规则:逐个字符进行比较,直到有 两个字符不等或有一个字符串结束为止 。 main() {char s1[80],s2[80]; int i,k; gets(s1); gets(s2); i=0; while(s1[i]!='\0' else i++; k=s1[i]-s2[i]; if(k0) printf(“s1s2\n“); else if(k0) printf(“s1s2\n“); else if(k0) printf(“s1s2\n“); else printf(“s1=s2\n“); } 练习3、判断一字符串是否为另一个字符串的子 串,若是则返回第一出现的起始位置,否则则 返回0 main() { static char s1[20]=“I love China!“; static char s2[20]=“love“; int i,j,k,m=0; for(i=0;s1[i]!='\0';i++) if(s1[i]= =s2[0]) { for(j=1,k=i+1;s2[j]!='\0';j++,k++) if(s1[k]!=s2[j]) break; if(s2[j]=='\0') { m=i; break;} } printf(“station is %d\n“,m); } 八、对矩阵的操作 注意:矩阵的主对角线、副对角线的概念 如何实现矩阵转置、求解矩阵中指定的元 素之和等问题(如求解右上三角、左下三角的 元素之和) 打印杨辉三角形(用一维和二维分别实现 ) 习题7.6:输出杨辉三角形(10行)。 void main() { int i,j,a[11][11]; for(i=0;i11;i++) {a[i][1]=1;a[i][i]=1;}{a[i][1]=1;a[i][i]=1;} for(ifor(i=3;i11;i++)=3;i11;i++) for(jfor(j=2;j=i-1;j++)=2;j=i-1;j++) a[i][ja[i][j]=a[i-1][j-1]+a[i-1][j];]=a[i-1][j-1]+a[i-1][j]; for(ifor(i=1;i11;i++)=1;i11;i++) { {for(jfor(j=1;j==1;j=i;ji;j++)++) printf(“%6d “, printf(“%6d “,a[i][ja[i][j]);]); printf(“\nprintf(“\n“); }“); } printf(“\n“); } 1 1 1 11 1 1 2 11 2 1 1 3 3 11 3 3 1 1 4 6 4 11 4 6 4 1 1 5 10 10 5 11 5 10 10 5 1 …… …… a[1][1]1 a[2][1]1+a[2][2]1 a[3][1]1+a[3][2]2+a[3][3]1 a[4][1]1+a[4][2]3+a[4][3]3+a[4][4]1 a[5][1]1+a[5][2]4+a[5][3]6+a[5][4]4+a[5][5 ]1 ………… a[i][ja[i][j]=a[i-1][j]+a[i-1][j-1]]=a[i-1][j]+a[i-1][j-1] 0 0行、行、0 0列不用列不用 第一列、对第一列、对 角线为角线为1 1 从第三行开始计从第三行开始计 算各元素值算各元素值 输出各元素值输出各元素值 main() { int a[10][10]; int i,j; for (i=0;i10;i++) { a[i][0]=1;a[i][i]=1; for (j=1;ji;j++) a[i][j]=a[i-1][j-1]+a[i- 1][j]; } for(i=0;i10;i++) { for(j=0;j=i;j++) printf(“%6d“,a[i][j]); printf(“\n“); } for (i=0;i10;i++) {for (j=0;j35-3*i;j++) printf(“ “); for (j=0;j=i;j++) printf(“%6d“,a[i][j]) ; printf(“\n“); } }

展开阅读全文

c语言算法课件,《C语言常见算法》PPT课件.ppt相关推荐

  1. 算法百花齐放:探索常见算法的精妙之道

    在计算机科学的领域中,算法是一项关键而令人着迷的技术.它们是解决问题.优化效率以及创造智能系统的核心.从简单的排序和搜索任务到复杂的机器学习和深度学习应用,常见算法为我们提供了解决各种挑战的有力工具. ...

  2. 语言高精度算法阶乘_JavaScript中的算法(附10道面试常见算法题解决方法和思路)...

    https://juejin.im/post/6844903811505455118 Introduction 面试过程通常从最初的电话面试开始,然后是现场面试,检查编程技能和文化契合度.几乎毫无例外 ...

  3. c语言分治法求众数重数_五大常见算法策略之——递归与分治策略

    递归与分治策略 递归与分治策略是五大常见算法策略之一,分治策略的思想就是 分而治之 ,即先将一个规模较大的大问题分解成若干个规模较小的小问题,再对这些小问题进行解决,得到的解,在将其组合起来得到最终的 ...

  4. 常见排序算法(C语言实现)

    常见排序算法(C语言实现) 文章目录 常见排序算法(C语言实现) 一.插入排序 二.希尔排序 三.选择排序 四.堆排序 五.冒泡排序 六.快速排序 七.归并排序 一.插入排序 void insertS ...

  5. c语言最长递增子序列nlogn,十月常见算法考题、最长递增子序列,Leetcode第300题最长上升子...

    十月常见算法考题.最长递增子序列,Leetcode第300题最长上升子 十月常见算法考题.最长递增子序列,Leetcode第300题最长上升子序列的变种,我没见过乔丹,今天詹姆斯就是我的神! @Aut ...

  6. c语言数据交换的算法流程图,C语言冒泡排序算法浅析

    C语言泡排冒序算浅析 法中刘旭 ( 江师范丽等专高学科校数与计算机学科学系 ) [ 摘]要泡冒排序算法 C语言常见是排序算法之,一该算法的优点 逻辑是清晰,代码简洁,点缺是时复杂度间高较本文介.绍了统 ...

  7. crc16几种标准校验算法及c语言代码

    一.CRC16校验码的使用 现选择最常用的CRC-16校验,说明它的使用方法. 根据Modbus协议,常规485通讯的信息发送形式如下: 地址 功能码 数据信息 校验码 1byte 1byte nby ...

  8. 时钟页面置换算法c语言,clock置换算法例题(改进clock置换算法例题讲解)

    Clock页面置换算法: 6)动态给出页面调用序列并进行调度: 7)输出置换结. C++编程要? 考试用 哪位大侠 帮帮 快点 谢谢了 这很简单啊,要打字太多了.不过网上这类算法举例很少,就看你怎么理 ...

  9. 计算机基础——3.3 算法与程序设计语言

    程序,算法和数据结构 尼.沃思提出,程序=数据结构+算法,研究计算机就是研究算法 软件的主体是程序,程序的核心是算法,而算法建立在数据结构基础上 程序是软件的核心,这毋庸置疑.而算法是程序的核心,因为 ...

  10. 《数据结构与算法:Python语言描述》一1.3算法和算法分析

    本节书摘来自华章出版社<数据结构与算法:Python语言描述>一书中的第1章,第1.3节,作者 裘宗燕,更多章节内容可以访问云栖社区"华章计算机"公众号查看 1.3算法 ...

最新文章

  1. linux ps命令大全,Linux ps命令例子汇总
  2. python装饰器作用-什么是Python装饰器,有什么作用?
  3. 什么是尾递归?测试python尾递归
  4. 枚举类型(C# 编程指南)
  5. html flash 动画效果代码大全,flash动作代码大全
  6. 【发现】iframe 放入 Updatepanel 中没有作用,整页总要闪烁一次的解决办法
  7. 如何 给给软件开发 添加 代理_如何与软件开发公司有效沟通
  8. Eclipse Oxygen 解决 自动导包的问题
  9. [20170515]数据库启动的一个疑问.txt
  10. OC-NSFileManager
  11. HTML+JS实现可编辑表格
  12. [转]将H264与AAC打包Ipad可播放的TS流的总结
  13. USB协议 - UVC标准协议规范(二)
  14. 塞规公差带图_塞规和卡规公差表
  15. java foxpro_面向对象的语言主要包括C、Java、VB、FoxPro、Python、R等。
  16. Java中求集合交集、并集、差集
  17. MySQL 设置 创建时间 和 更新时间
  18. 众昂矿业:为保障萤石足量供应,开源节流势在必行
  19. LTE初始随机接入过程
  20. 安全类系列资质认证,你都了解嘛?

热门文章

  1. C++ 多线程 atomic
  2. 无人驾驶(如何自己构建hdmap)
  3. python编程( 第一份Windows平台运行的python代码)
  4. 多线程的那点儿事(之自旋锁)
  5. 一步一步写算法(之 算法总结)
  6. concurrentarraylist_java多线程学习七::::并发下ArrayList和HashMap
  7. html 脚本 gdi,基于gdi的简单画图
  8. 解决Git 克隆代码 The remote end hung up unexpectedly错误
  9. php七牛持久化处理,使用七牛自定义数据处理范例
  10. 渗透攻击exp共享站点