C语言--关于二维数组,字符串数组,多维数组
来源:互联网 发布:公安备案阿里云服务器 编辑:程序博客网 时间:2024/04/27 16:58
int main(int argc, const char * argv[]){ @autoreleasepool {#pragma mark-----------二维数组 int a[3][4]={ {1,2,3,4}, {5,6,7,8}, {12,10,11,12} }; //打印二维数组 for (int i = 0; i<3; i++) { for (int j =0; j<4; j++) { printf(" %d ",a[i][j]); } printf("\n"); } //把行和列交换,放到新的二维数组 int b[4][3]={0}; for (int i = 0; i<3; i++) { for (int j =0; j<4; j++) { b[j][i]=a[i][j]; } } printf("\n"); for (int i =0; i<4; i++) { for (int j =0; j<3; j++) { printf(" %d ",b[i][j]); } printf("\n"); } //找出二维数组中的最大值,并把行和列表示出来 int max = 0; for (int i =0; i<3; i++) { for (int j =0; j<4; j++) { if (max<a[i][j]) { max=a[i][j]; } } } printf("max=%d",max); for (int i = 0; i<3; i++) { for (int j = 0; j<4; j++) { if (max==a[i][j]) { printf("第%d行,第%d列 ",i+1,j+1); } } }#pragma mark--------------总结 /** * 1:求和算法(累加) * 2:求最大值算法是(逐一比较) * 3:排序算法是(先比较再交换) * 4:二维数组运用,地图,扫雷,电影院,(选了就是1,没选就是0) */#pragma mark--------------字符串数组 /** * 1:访问某个字符串(数组名[第一维下标]) * 2:访问某个字符(数组名[第一维下标][第二维下标]) */ char str[3][10]={"iPhone","Android","Win8"}; //1操作字符串(拷贝strcpy 拼接strcat 长度strlen 比较strcmp) strcpy(str[2], "lanou"); printf("\n%s ",str[2]); //2操作单个字符,数组名[第一维下标][第二维下标] //通过双下标精确定位 要操作的字符 //字符串可以直接strcpy //字符可以直接赋值 str[1][3]='a'; printf("\n%s",str[1]); //练习题 //1,输入三个单词,找出最长的单词 long length = 0; for (int i =0; i<3; i++) { if (length<strlen(str[i])) { length=strlen(str[i]); } } //%lu printf("\n%ld",length); for (int i =0; i<3; i++) { if (length == strlen(str[i])) { printf("\n最长的单词:%s \n",str[i]); } } //2,十个单词,排序(小--大) for (int i = 0; i<3-1; i++) { //注意 for (int j =0; j<3-1-i; j++) { if (strcmp(str[j], str[j+1])>0) { char temp[10]={0} ; strcpy(temp, str[j]); strcpy(str[j], str[j+1]); strcpy(str[j+1], temp); } } } for (int i = 0; i<3; i++) { printf(" %s ",str[i]); } #pragma mark-------------多维数组 //1:多维数组,维数大于2 //2:for循环,第一层层数,第二层行数,第三层列数 //3:多个一维成二维,多个二维成三维 #pragma mark--------------作业 //1、(**)有一个3行4列的二维数组,要求编程找出最大的元素,并输出所在的行和列。 //2、(**)输入6个字符串,并对它们按从小到大的顺序排序后输出. //3、(****)找出一个二维数组中的“鞍点”,即该位置上的元素在该行中最大,在该列中最小(也可能没有“鞍点”),打印有关信息。(提示:注意特殊情况 //解题思路(分析) //4 3 2 1 //5 1 3 9 //6 7 8 3 //1,定义一个二维数组 //2,判断有无鞍点 //3,在该行中最大(最大值) //4,在该列中最小(最小值) //5,打印输出 //1,定义一个二维数组// int c[3][4]={// {4,3,2,1},// {5,1,3,9},// {6,7,8,3},// }, min = 0,maxs = 0,d = 0,e = 0;//maxs行最大数,min为列最小数,d,e为记下下标的变量.// int flag = 0;// // for (int i = 0; i<3; i++) {// maxs = c[i][0];//行最大数// for (int j = 0; j<4; j++) {// if (maxs<c[i][j]) {// maxs = c[i][j];// //d,e为记下下标的变量// d=i;// e=j;// }// // min = c[0][e];//min为列最小数// for (int k = 0; k<3; k++) {// if (min > c[k][e] ) {// min=c[k][e];// }// }// }// // if (min ==maxs) {// printf("\n鞍点为:%d,位于%d行,%d列",maxs,d+1,e+1);// flag=1;// }// }// if (flag == 0) {// printf("该二维数组无鞍点");// } //2,判断有无鞍点 //3,在该行中最大(最大值) //4,在该列中最小(最小值) //5,行和列相等// for (int i=0 ; i<3; i++) {// for (int j = 0; j<4; j++) {// if (min>c[j][j]) {// min = c[j][j];// }// }// if (min<c[i][i]) {// min = c[i][i];// }// }// printf("\n %d ",min); int a1[2][3]={ {1,2,3}, {4,5,6}, }; int max1 = 0; int min1 = 0; int index1=0; int index2=0; for (int i =0; i<2; i++) { max1=a1[i][0]; for (int j = 0; j<3; j++) { if (max1<a1[i][j]) { max1=a1[i][j]; index1 = i; index2 = j; } min1=a1[0][index2]; for (int k =0; k<2; k++) { if (min1>a1[k][index2]) { min1=a1[k][index2]; } } } if (max1==min1) { printf("\n鞍点是%d,在第%d行,在第%d列",min1,index1,index2); } } } return 0;}
0 0
- C语言--关于二维数组,字符串数组,多维数组
- C语言--二维数组,字符串数组,多维数组
- C语言编程5 二维数组、字符串数组、多维数组
- 二维数组,字符串,多维数组
- iOS开发学习之C语言---C11 二维数组、字符串数组、多维数组
- 二维数组,字符串数组,多维数组
- C5_二维数组,字符串数组,多维数组
- 二维数组、字符串数组、多维数组
- 5.二维数组、字符串数组、多维数组
- C5-二维数组、字符串数组、多维数组
- c_二维数组,字符串数组,多维数组
- c_二维数组,字符串数组,多维数组
- [TwistedFate]二维数组,字符串数组,多维数组
- 二维数组,多维数组,字符串数组;
- C语言--关于二维数组
- C语言----多维数组
- Lisp语言:二维数组和多维数组
- Lisp语言:二维数组和多维数组
- POJ 2007 (极角排序)
- 26、python 闹钟程序
- 一种不理解的写法
- 2014美图秀秀校招Android笔试题
- 字符串转浮点数
- C语言--关于二维数组,字符串数组,多维数组
- 设置SVN服务器允许修改日志
- java 设计模式-代理模式
- 机器学习--邮件过滤
- POJ 1873 (枚举子集+凸包)
- python poplib — POP3 protocol client 用POP3收取邮件
- chrome的ssh客户端插件-- secure shell
- cookie的作用,用途
- SecureCRT 属性设置