谭浩强C++课件_2 作用域 存储类 数组 结构体.ppt
文本预览下载声明
* 9 8 5 4 2 0 a[6] a[5] a[4] a[3] a[2] a[1] a[min]与a[6]比较 5 min min=5 min=5 5 min a[min]与a[5]交换 9 8 5 4 2 0 a[6] a[5] a[4] a[3] a[2] a[1] 第五趟,循环1次 总结: n 次数 趟数 i(1~n-1) 5 4 3 2 1 n-i 1 2 3 4 5 共有6个数 for (i=1; i=n-1; i++) { min=i ; for (j=i; j=n; j++) if (a[min]a[j]) min=j ; t=a[min]; a[min]=a[i]; a[i]=t; } * 一般,元素的序号从0开始,因此,程序可以变动如下: for (i=0; in-1; i++) { min=i; for (j=i; jn ; j++) if (a[min]a[j]) min=j ; t=a[min]; a[min]=a[i]; a[i]=t; } 小循环,找最小数的序号,从 i 找起 大循环,找到后与 i 交换 每一次循环前设置最小数的序号 * 调试程序的方法: 1)单步调试:以行为单位,每运行一步,程序就会中断,可以实时查询目前各变量的状态及程序的走向。可以选择是否进入子函数。 2)运行到光标处,可以直接使程序运行到光标处再进行单步调试,这种方法可以不必运行正确的循环而直接到有疑问的地方。 * 在a数组中查找与x值相同的元素所在的位置,数据从a[1]元素开始存放,请填空: #define MAX 10 void main(void) { int a[MAX+1], x, i; for(i=1;i=MAX;i++) cin__________; cout“Enter x:”; cinx; a[0]=x; i=MAX; while(x!=___________) ____________________; if(___________) coutx“the pos:”iendl; else cout“Not found”endl; a[i] a[i] i-- i!=0 * void main(void) { char str[ ]=“SSSWILTECH1\1\11W\1WALLMP1”; char c; int k; for(k=2; (c=str[k])!=‘\0’;k++) { switch(c) { case ‘A’ : cout‘a’; continue; case ‘1’: break; case 1: while((c=str[++k])!=‘\1’c!=‘\0’); case 9: cout‘#’; case ‘E’ : case ‘L’: continue; default: coutc; continue; } cout‘*’; } coutendl; } S W I T C H * # W a M P * * 以下程序分别在a数组和b数组中放入an+1和bn+1个由小到大的有序数,程序把两个数组中的数按由小到大的顺序归并到c数组中,请填空: void main(void) { int a[10]={1,2,5,8,9,10},an=5; int b[10]={1,3,4,8,12,18}, bn=5; int i,j,k, c[20], max=9999; a[an+1]=b[an+1]=max; i=j=k=0; while( a[i]!=max||b[j]!=max) { if(a[i]b[j]) { c[k]=________; k++; _______} else { c[k]=_________; k++; __________
显示全部