语言2015c第07章数组_第1页
语言2015c第07章数组_第2页
语言2015c第07章数组_第3页
语言2015c第07章数组_第4页
语言2015c第07章数组_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

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

文档简介

1、void sort(int s ,int n) int i,j,temp; for(i=0;in-1;i+) for(j=0;jsj+1) temp=sj; sj=sj+1; sj+1=temp; 进行比较和交换,一直进行到比较中位进行比较和交换,一直进行到比较中位于前面的那个元素距离队列的第一个元于前面的那个元素距离队列的第一个元素小于当前比较间隔为止。素小于当前比较间隔为止。 当间隔减小到当间隔减小到0时算法结束。时算法结束。(1) gap=4 (2) gap=2 (3) gap=1 7316 571 5727194717268732371687268717394.#define TRUE

2、 1#define FALSE 0int linesearch(int list,int size, int key) int index, found, i; index=-1; found=FALSE; i=0; while(isize&!found) if(listi=key) found=TRUE; index=i; i+; return index;/*折半法在元素按升序排列得数组折半法在元素按升序排列得数组v中查找值为中查找值为x得元素得元素*/int binsearch(int x, int v, int n) int top,bottom=n-1,mid; while(top=

3、bottom) mid=(top+bottom)/2; if(xvmid) top=mid+1; else return mid; /找到找到 return -1; /未找到未找到l问题:问题:l元素是否可以从最后一个元素开始向前移动,最后再元素是否可以从最后一个元素开始向前移动,最后再移动删除位置后的那个元素?移动删除位置后的那个元素? 程序程序行数列数01452301234567.20212223c000c001c002c003c010c011c012c013c020c021c022c023c100c101c102c103c110c111c112c113c120c121c122c123字符

4、串结束标志字符串结束标志 字符数组的初始化a; a; 格式:格式:strlen(strlen(字符串地址字符串地址) /) /应包含的应包含的.h.h文件为文件为string.h string.h 功能:计算字符串长度功能:计算字符串长度返值:返回字符串实际长度,不包括返值:返回字符串实际长度,不包括00在内在内 #include #include #define CITYNUM 10 void main ( ) int i, j, k, num; char cityCITYNUM20; char str80; num = 0; /实际输入的城市数初始化为0 /输入城市名字符串(长度不能超过1

5、9) for (i = 0; i 19) /城市名字符串超过19时,重输 i-; continue; strcpy (cityi, str); /将输入的城市名保存到字符串数组中 num+; /实际输入的城市数增1 for (i = 0; i num - 1; i+) /选择排序(升序) k = i; /k为当前城市名最小的字符串数组的下标,初始假设为I /查找比cityk小的字符串的下标放入k中 for (j = i+1; j 0) k = j; if (k != i) /将最小城市名的字符串cityk与cityi交换 strcpy (str, cityi); strcpy (cityi,

6、cityk); strcpy (cityk, str); for (i = 0; i num; i+) /显示排序后的结果 printf (%s , cityi); printf (n); printf(%d: %sn,codei,namei);strcpy(namej+1,str); #include #define MAX 15 void main ( ) int m, mm, i, j, k, ni, nj; int magicMAXMAX = 0; printf (Enter the number you wanted: ); scanf (%d, &m); if (m = 0) |

7、(m % 2 = 0) /小于0或为偶数返回 printf (Error in input data.n); return; mm = m * m; i = 0; /第一个值的位置 j = m / 2; #include #include void main ( ) long k, min, max, count10 = 0; char str9; int i; /输入最小、最大数 printf (input the first number: ); scanf (%ld, &min); printf (input the last number: ); scanf (%ld, &max); if (min max) /最小数比最大数大,退出 printf (ninput error!); return; /统计各数字出现的次数 for (k = min; k = 0 & stri != ; i-) countstri-0+; for (i = 0; i 10; i+) /显示结果 printf (%d-(%ld) , i, counti); if (i = 4) printf (n); printf (n); getop 输入缓冲区输入缓冲区buf(字符数组)定义成外部(字符数组)定义成外部静态数组,缓冲区指针静态数组,缓冲区指针bufp(数组元素

温馨提示

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

评论

0/150

提交评论