欢迎来到天天文库
浏览记录
ID:59476220
大小:146.50 KB
页数:35页
时间:2020-09-14
《C语言常用算法ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言常用算法一、数值计算1、累加2、累乘(阶乘)3、交换4、最大/最小值5、数位拆解6、数组移动7、级数计算8、素数判断二、数据查找1、顺序查找2、穷举查找三、排序算法1、冒泡排序2、选择排序3、插入排序4、归并排序21、累加累加算法的要领是形如“s=s+A”的累加式,此式必须出现在循环中才能被反复执行,从而实现累加功能。“A”通常是有规律变化的表达式,s在进入循环前必须获得合适的初值,通常为0。一、数值计算3例g-1、求1+2+3+……+100的和。main(){inti,s;s=0;i=1;while(i<=100){s=s+i;i=i+1;}pr
2、intf(“s=%d",s);}【解析】程序中红字部分为累加式的典型形式,赋值号左右都出现的变量称为累加器,其中“i=i+1”为特殊的累加式,每次累加的值为1,这样的累加器又称为计数器。main(){inti,s;s=0;i=1;for(i=1;i<=100;i++)s=s+i;printf(“s=%d",s);}42、累乘、阶乘累乘算法的要领是形如“s=s*A”的累乘式,此式必须出现在循环中才能被反复执行,从而实现累乘功能。“A”通常是有规律变化的表达式,s在进入循环前必须获得合适的初值,通常为1。5例g-2、求10!【分析】10!=1×2×3
3、×……×10main(){inti;longs;s=1;i=1;while(i<=10){s=s*i;i=i+1;}printf("1*2*3*...*10=%ld",s);}63、交换两量交换借助第三者。如同交换两个瓶子里的墨水,必须借助第三个空瓶子。例g-3、任意读入两个整数,将二者的值交换后输出。main(){inta,b,t;scanf("%d%d",&a,&b);printf("%d,%d",a,b);t=a;a=b;b=t;printf("%d,%d",a,b);}【解析】程序中加粗部分为算法的核心,其中t为中间变量,起到“空瓶子
4、”的作用。注意:三句赋值语句赋值号左右的各量之间的关系!7【应用】例g-4、任意读入三个整数,然后按从小到大的顺序输出。例C12_102main(){inta,b,c,t;scanf("%d%d%d",&a,&b,&c);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf("%d,%d,%d",a,b,c);}84、求最大值/最小值【例g-5】用数组a存放随机产生的20个整数,然后输出其最大值和最小值。#defineN20main(){inta[N],i,max,
5、min;for(i=0;imax)max=a[i];if(a[i]a[max]
6、)max=i;if(a[i]7、分位:65824/100%10=8千分位:65824/1000%10=5万位:65824/10000%10=611【例g-7】输出一个任意整数的各个位数。#defineN10main(){inta[N],i=0;longx;scanf("%ld",&x);while(x>0L){a[i]=x%10;x/=10;i++;}for(i--;i>=0;i--)printf("%d",a[i]);}12【例g-8】用随机函数产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。【分析】用数组a8、[100]存放产生的确100个随机整数,数组x[10]来存放个位上的数字分别为1
7、分位:65824/100%10=8千分位:65824/1000%10=5万位:65824/10000%10=611【例g-7】输出一个任意整数的各个位数。#defineN10main(){inta[N],i=0;longx;scanf("%ld",&x);while(x>0L){a[i]=x%10;x/=10;i++;}for(i--;i>=0;i--)printf("%d",a[i]);}12【例g-8】用随机函数产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。【分析】用数组a
8、[100]存放产生的确100个随机整数,数组x[10]来存放个位上的数字分别为1
此文档下载收益归作者所有