- 2
- 0
- 约1.44万字
- 约 42页
- 2018-06-21 发布于河南
- 举报
北京航空航天大学C语言g第七讲(第七章) 二维数组和字符数组
输入一个正整数n (1n≤50),再输入n个整数,用选择法将它们从小到大排序后输出。 //选择法对数组的排序的完整程序 #include stdio.h int main(void) { int i, index, k, n, temp; int a[50]; //定义1个数组a,它有50个整型元素 printf(Enter n: ); /* 提示输入n */ scanf(%d, n); printf(“Enter %d integers: ”, n); //提示输入n 个数 // 将输入数依次赋给数组a的n个元素a[0]~a[n-1] for (i = 0; i n; i++) scanf(%d, a[i]); P153 练习7.9 折半查找法 ( 只适用于有序数列 )。 1, 对给定的数组a和要找的数num,首尾下标first和last用纪录; 2,如果 last == first a[last] !=num,则没有该数; 3,求居于中间下标 middle=(first+last)/2; 4,如果x[middle]==num,则找到; 5,如果x[middle]num,则只需要找middle左边的数组,即再查找下标first~middle-1区间的数,将last=middle-1, goto 2); 6, 如果x[middle]num,则只需要找middle右边的数组,即再查找下标middle+1~last区间的数,将first=middle+1, goto 2). void main(int argc, char* argv[]) { int a[11]={1,3,6,7,9,12,23,34,35,39,41}, num=35; int first=0, last=9, middle; while (1) { if (last==first a[last]!=num) { printf(“没有找到\n); break; } middle=(first+last)/2; //折半, 一分为二,左右两半 if (a[middle] == num) { printf(找到为第%d个数\n,middle+1); break; } if (numa[middle]) last=middle-1; //去掉右一半 else first=middle+1; //去掉左一半 printf(%d,%d,%d\n,middle,first,last);//打印中间结果 } } 第七章 数组二维数组和字符数组 1.定义: 类型说明符 变量名[常量表达式][常量表达式] 例如:float a[3][4]; a[0][0] …… a[0][3] a[1][0] …… a[1][3] a[2][0] …… a[2][3] 2.引用 数组名[下标][下标] 程序中引用的是数组中一个元素,必须用下标来指定。 float a[4][4] ; a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][1] a[2][2] a[2][3] a[3][0] a[3][1] a[3][2] a[3][3] void main() { int a[4][4]; int i,j,sum=0; for (i=0;i4;i++) for (j=0;j4;j++) { scanf(%d,a[i][j]); sum=sum+a[ i ][ j ]; } printf(sum=%d\n,sum); } 三维数组的定义与二维数组相同。 如:float a[2][3][4]; 2×3×4共有24个元素 float a[100][100][100] ; 有1000000个元素 1.用scanf语句由用户输入
原创力文档

文档评论(0)