主要算法总结_第1页
主要算法总结_第2页
主要算法总结_第3页
主要算法总结_第4页
主要算法总结_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

主要算法总结2011-8顺序结构程序设计将两个两位数的正整数a、b合并形成一个整数放在c中。运算符/和%的应用合并的方式是:将a的十位数和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。1-3四舍五入:66-3选择结构程序设计字母转换

40-1,50-2判断能否构成三角形:49-2switch的使用:36-2统计长整数n的各个位上出现数字1、2、3的次数:47-1循环结构程序设计任意输入一个自然数,把它反序输出

#include<stdio.h>main(){longa,i,t=0;

scanf(“%ld”,&a);

while(a>0){i=a%10;t=t*10+i;a=a/10;}

printf(“\n%ld”,t);}循环结构程序设计求两个整数的最大公约数和最小公倍数:辗转相除法

34-2;83-2

r=a%b;while(r!=0){a=b;b=r;r=a%b;}

b是最大公约数循环结构程序设计从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位(取数字组合新的数据,或计算)

2-2;53-1;voidfun(longs,long*t){longsl=10;*t=s%10;while(s>0){s=s/100;*t=s%10*sl+*t;

sl=sl*10;}}

循环结构程序设计简单的累加问题简单的累乘问题拆数字问题43-2求n以内能被5和9整除的数字关于素数问题:46-1;49-3公式计算:S=1+1/(1+2)+1/(1+2+3)…

f(x)=1+x-x2/2!+x3/3!…循环结构程序设计排列组合问题:;42-2迭代法:【28-3;63-2;80-2;56-3;

】斐波那契数列:【29-3;58-2;75-2;】二分法:33-2计算正整数num的各位上的数字之积:5-2;57-2;68-3;49-3;51-1?打印所有质因子:12-2;计算并输出给定整数的所有因子之和(不包括1和本身)41-3数组和指针找一维数组的最大值及其下标:57-3;76-3求能整除形参x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。74-3m个人的成绩存放在score数组中,请编写函数fun,将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。73-3;44-3将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。21-3*;44-2;68-3*;

数组和指针找一维数组的最大值及其下标:57-3;76-3求能整除形参x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。74-3m个人的成绩存放在score数组中,请编写函数fun,将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。73-3;44-3将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。21-3*;44-2;68-3*;

数组和指针排序算法:冒泡法和选择法

#include<stdio.h>main(){inta[5]={12,32,11,54,2};int

i,j,temp;for(i=0;i<4;i++)n-1趟

for(j=0;j<4-i;j++)n-i次{if(a[j]>a[j+1]) {temp=a[j];

a[j]=a[j+1]; a[j+1]=temp; }}for(i=0;i<5;i++)printf("%d",a[i]); }for(i=0;i<N-1;i++){k=i;

for(j=i+1;j<N;j++)

if(a[j]<a[k])k=j;//找出最小值的下标t=a[k];

a[k]=a[i];

a[i]=t;}3-2*;7-2;16-2*;数组和指针折半查找:在一批有序数据中查找某数基本思想:选定这批数中居中间位置的一个数与所查数比较,看是否为所找之数,若不是,利用数据的有序性,可以决定所找的数是在选定数之前还是在之后,从而很快可以将查找范围缩小一半。以同样的方法在选定的区域中进行查找,每次都会将查找范围缩小一半,从而较快地找到目的数数组和指针关键语句:32-2

top=0;bot=n-1;mid=(top+bot)/2;

while(bot>top) { if(m==a[mid]){printf("%d",mid);break;} else

if(m>a[mid]){top=mid+1;mid=(top+bot)/2;}

else{bot=mid-1;mid=(bot+bot)/2;} } if(bot<=top)printf("nofound!");}

数组和指针对数组元素进行插入:插入后仍有序(1)要找到number在数组中的位置(2)给number让位置(3)将number放到该位置上

for(i=n-1;i>=0;i--)if(a[i]>number)

a[i+1]=a[i];//后移

else break;a[i+1]=number;数组和指针在有序数组中删除一个数(1)要找到b在数组中的位置(2)后面的数组元素依次前移,覆盖该位置上的数组元素即可实现删除

for(i=0;i<n;i++)

if(a[i]==b) break;for(;i<n-1;i++)

a[i]=a[i+1];n--;数组和指针重排数组中元素顺序把数组aa中的偶数元素按原来的先后顺序放在原数组后面。voidfun(int

aa[]){ intI,j=0,k=0;

int

bb[N]; for(I=0;I<N;I++) { if(aa[I]%2==0)bb[k++]=aa[I]; else

aa[j++]=aa[I]; }

for(I=0;I<k;I++,j++) aa[j]=bb[I];}数组和指针重排数组中元素顺序将数组中的奇数按原顺序存入数组中,偶数删除34-1*;35-1;98-3将形参a所指数组中的前半部分元素中的值与后半部分对换【38-1*;39-1;】【41-2*(另一种形式的移位)】【64-1*,65-1;95-3*】再定义一个数组数组和指针求二维数组每列(或每行)最小(大)元素15-3*;58-3;73-1;矩阵转置:23-3;67-3元素移位:28-1*;29-1;30-1*;72-1;关于对角线的操作:31-1*;32-1;33-1;53-2;67-2;幻方:*70-1;K行与0行元素交换71-1;数组和指针指向二维数组29-1;30-1;31-1;69-1;72-2指向字符串数组:19-1;20-1;21-1:*22-2;59-2;返回指针值的函数:函数类型*函数名(形参表):*6-3;*9-2;21-2;88-2;96-2;指针数组:数据类型*p[n]22-2;定义指向指针的指针变量(二级指针):数据类型**p:69-3;指向函数的指针变量:函数类型(*p)91-1字符串字符排序:19-3;26-1;71-2;90-2删除字符串中某一下标的字符:26-3;85-2将字符串转换为整型数:*55-3(注意有无负号);判断回文:91-3;字符串中字符移位或插入其它字符*等:(23-1;*25-1;27-1;)(*60-1;22-1;

);*70-3;删除串中的’*‘:(31-3;32-3;

34-3;35-3;81-3;82-3;83-3;84-3;85-3)字符串比较:81-1;统计一个子串在另一个字符串中出现的次数:*22-3;*20-3;24-1;*25-3;56-2;*83-1统计单词100-3;字符串排序或求长度17-1;(*18-1,19-1)(*20-1;21-1)(82-1;84-1)递归:6-2;结构体与链表11-1查找指定编号的数据,作为函数值返回,若指定编号不存在,返回数据中的编号为空串(返回值为结构体、结构体数组作为参数传递)12-1:查找指定的一些人,存入数组中,37-3;86-3;87-3;89-3;85-1(结构体变量间赋值)86-1;87-1;88-1;12-3(查找学生成绩最高的记录,并通过形参指针返回)52-3(结构体数组排序)62-3;89-114-1(结构体变量排序)15-136-3(求一个学生各科平均值,注意结构体指针。)38-3;39-3;13-1;(简单结构体变量的应用),16-1;结构体与链表5-1(一个有序链表中插入一个数据,要求仍有序,含产生、输出、插入等)6-1每调用一次函数,输出链表尾部结点数据,并释放该结点。7-1链表已经递增排序,删除链表中数据域值相同的结点,使之只保留一个。8-1单向链表,查找数据域值为ch的结点,找到后返回所处的顺序号,否则返回0(9-1;10-1;40-3;90-3;91-2;92-2)9

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论