完整版非常全的C语言常用算法.docxVIP

  • 4
  • 0
  • 约1.81万字
  • 约 20页
  • 2020-11-10 发布于山东
  • 举报
言常用算法 一、基本算法 1.交 (两量交 借助第三者) 例 1、任意 入两个整数,将二者的 交 后 出。 main() {int a,b,t; scanf(%d%d,a,b); printf(%d,%d\n,a,b); t=a; a=b; b=t; printf(%d,%d\n,a,b);} 【解析】程序中 加粗 部分 算法的核心,如同交 两个杯子里的 料,必 借助第三个空杯子。 假 入的 分 3、7, 第一行 出 3, 7;第二行 出 7, 3。 其中 t 中 量,起到“空杯子”的作用。 注意 :三句 句 号左右的各量之 的关系! 【 用】 例 2、任意 入三个整数,然后按从小到大的 序 出。 main() {int a,b,c,t; scanf(%d%d%d,a,b,c); /* 以下两个 if 句使得 a 中存放的数最小 */ if(ab){ t=a; a=b; b=t;  } if(ac){ t=a; a=c; c=t; } /* 以下 if 句使得 b 中存放的数次小 */ if(bc) { t=b; b=c; c=t; } printf(%d,%d,%d\n,a,b,c);} 2.累加 累加算法的要 是形如“ s=s+A ”的累加式,此式必 出 在循 中才能被反复 行,从而 累加功能。 “ A ”通常是有 律 化的表达式, s 在 入循 前必 得合适的初 , 通常 0。 例 1、求 1+2+3+ ?? +100 的和。 main() {int i,s; s=0;  i=1; while(i=100) { s=s+i; i=i+1;  /* 累加式 */ /* 特殊的累加式  */ } printf(1+2+3+...+100=%d\n,s);} 【解析】程序中 加粗部分 累加式的典型形式, 号左右都出 的 量称 累加器,其中“ + 1” 特殊的累加式,每次累加的 1, 的累加器又称 数器。  i = i 言常用算法 3.累乘 累乘算法的要 是形如“ s=s*A ”的累乘式,此式必 出 在循 中才能被反复 行,从而 累乘功能。 “ A ”通常是有 律 化的表达式, s 在 入循 前必 得合适的初 ,通常 1。 例 1、求 10! [分析 ]10 ! =1× 2× 3×??× 10 main() {int i; long c; c=1; i=1; while(i=10) { c=c*i; /* 累乘式 */ i=i+1; } printf(1*2*3*...*10=%ld\n,c);} 二、非数 算常用 典算法 1. 也称 “枚 法” ,即将可能出 的每一种情况一一 ,判断是否 足条件,一般采用循 来 。 例 1、用 法 出所有的水仙花数 (即 的三位正整数: 其每位数位上的数字的立方和与 数 相等,比如: 13+5 3+33=153)。 [法一 ] main() {int x,g,s,b; for(x=100;x=999;x++) {g=x%10; s=x/10%10; b=x/100; if(b*b*b+s*s*s+g*g*g==x)printf(%d\n,x);} } 【解析】此方法是将 100 到 999 所有的三位正整数一一考察,即将每一个三位正整数的个位数、 十位数、百位数一一求出(各数位上的数字的提取算法 下面的“数字 理” ),算出三者的立方 和,一旦与原数相等就 出。共考 了 900 个三位正整数。 [法二 ] main() {int g,s,b; for(b=1;b=9;b++) for(s=0;s=9;s++) for(g=0;g=9;g++) if(b*b*b+s*s*s+g*g*g==b*100+s*10+g)  printf(%d\n,b*100+s*10+g); } 【解析】 此方法是用 1 到 9 做百位数字、 0 到 9 做十位和个位数字, 将 成的三位正整数与每一 的三个数的立方和 行比 , 一旦相等就 出。 共考 了 900 个 合(外循 独 行的次数 9, 两个内循 独 行的次数分 10 次,故 if 句被 行的次数 9× 10× 10=900 ),即 900 个 三位正整数。与 法一 判断的次数一 。 语言常用算法 2.排序 ( 1)冒泡排序(起泡排序) 假设要对含有 n 个数的序列进行升序排列,冒泡排序算法步骤是: ①从存放序列的数组中的第一个元素开始到最后一个元素,依次对相邻两数进行比较,若前 者大后者小,则交换两数的位置; ②第①趟结束后,最大数就存放到数组的最后一个元素里了,然后从第一个元素开始到倒数 第二个元素,依次对相邻两数进行比较,若前者大后者

文档评论(0)

1亿VIP精品文档

相关文档