c语言第六章 数组解析.ppt
文本预览下载声明
找二维数组的鞍点 原理:先找到第一行的最大值对应的列数,再判断它是不是本列中的最小数,不是则结束,进入下一行;是则输出。 #include stdio.h int main() { int i,j,k,max,flag=0; int a[3][4]={2,4,6,8,4,17,-4,13,6,9,12,34}; for(i=0;i3;i++) { max=a[i][0]; k=0; for(j=1;j4;j++) if(a[i][j]max) { max=a[i][j]; k=j; } for(j=0;j3;j++) if(a[j][k]max) break; if(j==3) { printf(第%d行第%d列的%d是鞍点\n,i,k,a[i][k]); flag=1; } } if(!flag) printf(无鞍点\n); return 0; } Ch6 数组 §1数组的概念 §2一维数组的定义和引用 §3二维数组的定义和引用 §4字符数组的定义和引用 §5 8个处理串的系统函数 §6与数组相关的典型算法 一维数组: 求点积、求最大小值、排序 二维数组: 转置、求最大小值、矩阵乘积 字符数组:串连接函数等 作业: P168 3 5 13 15 例6.8 输入一行字符,统计其中有多少个单词,单词之间用空格隔开. 分析: 如:aa bbc dd ee…… 出现单词: 空格之后出现了一个非空格字符 注意问题: 1 用多长的数组放一行字符? 2 用什么函数接收一行可能带空格的字符? 3 word=0表示当前字符是空格,为检验下一个字符是否为单词的开始做准备。 num++; word=1; word==0 真 假 string[i]== 真 假 输出单词个数 word=0 i=0;当 string[i]!=\0; i++ 输入一行字符:gets(string) #include stdio.h int main() { char string[80]; int i,num=0,word=0; puts(请输入一个串:); gets(string); for(i=0; string[i]!=\0;i++) if(string[i]== ) word=0; else if(word==0) { num++; word=1; } printf(此行中有%d个单词.\n,num); return 0; } #include stdio.h void main() { int i,j,min,tem,a[10]; printf(please input ten num:\n); for(i=0;i10;i++) { printf(a[%d]=,i); scanf(%d,a[i]); } printf(\n); printf(Before sorted:\n); for(i=0;i10;i++) printf(%5d,a[i]); printf(\n); 6.2 for(i=0;i10;i++) { min=i; for(j=i+1;j10;j++) if(a[min]a[j]) min=j; if(min!=i) { tem=a[i]; a[i]=a[min]; a[min]=tem; } } printf(After sorted:\n); for(i=0;i10;i++) printf(%5d,a[i]); } #include stdio.h void main() { float a[3][3],sum=0,sum1=0,; int i,j; printf(please input rectangle element:\n); for(i=0;i3;i++) for(j=0;j3;j++) scanf(%f,a[i][
显示全部