C语言 - 训练营:数组
数组训练营
1 - 互换两个数组数据元素
1 // 两行三列 2 int array1[2][3] = {{1,2,3},{4,5,6}}; 3 // 三行两列 4 int array2[][2] = {11,12,13,14,15,16}; 5 // 遍历输出 6 printf("交换前---------\n"); 7 printf("array1\n"); 8 for (int i = 0; i < 2; i++) { 9 for (int j = 0; j < 3; j++) { 10 printf("%d ",array1[i][j]); 11 } 12 printf("\n"); 13 } 14 printf("\narray2\n"); 15 16 for (int i = 0; i < 3; i++) { 17 for (int j = 0; j < 2; j++) { 18 printf("%d ",array2[i][j]); 19 } 20 printf("\n"); 21 } 22 23 24 // 开始交换,搞一个中间变量 25 int arrayTem[3][2] ={0}; 26 27 // 行列互换 28 for (int i = 0; i < 3; i++) { 29 for (int j = 0; j < 2; j++) { 30 // 先把三行两列的数组赋值给中间数组 31 arrayTem[i][j] = array2[i][j]; 32 // array1 的元素赋值给 array2 33 array2[i][j] = array1[j][i]; 34 } 35 } 36 // 然后把中间变量赋值给 array1 37 for (int i = 0; i < 2; i++) { 38 for (int j = 0; j < 3; j++) { 39 array1[i][j] = arrayTem[j][i]; 40 } 41 } 42 43 printf("\n交换后----------\n"); 44 printf("array2\n"); 45 for (int i = 0; i < 3; i++) { 46 for (int j = 0; j < 2; j++) { 47 printf("%d ",array2[i][j]); 48 } 49 printf("\n"); 50 } 51 52 printf("\narray1\n"); 53 for (int i = 0; i < 2; i++) { 54 for (int j = 0; j < 3; j++) { 55 printf("%d ",array1[i][j]); 56 } 57 printf("\n"); 58 }
日志信息
2 - 找出数组中的最大值以及下标
1 int array [3][4]={0}; 2 int max = 0; 3 for (int i =0; i<3; i++) { 4 for (int j =0; j<4; j++) { 5 array [i][j]= rand()%41+10; // 搞一个数组 6 printf("%d ",array[i][j]); 7 if (max < array[i][j]) { 8 max = array[i][j]; 9 } 10 } 11 printf("\n"); 12 } 13 printf("最大值为 %d,",max); 14 for (int i =0; i<3; i++) { 15 for (int j=0; j<4; j++) { 16 if (max == array[i][j]) { 17 printf("其下标为 %d,%d\n",i,j); 18 } 19 } 20 } 21
日志信息
3 - 有两个数组,它们的取值范围均是 20-40。请分别将两数组中相同下标对应的元素相加,然后把结果放到一个新数组中
1 int a [10]={0};// 数组1 2 int b [10]={0};// 数组2 3 int c [10]={0};// 存放结果的数组 4 for (int i=0;i<10;i++) { 5 a [i]=rand()%21+20; 6 b [i]=rand()%21+20; 7 c[i]=a[i]+b[i]; 8 printf("%d+%d=%d\n",a[i],b[i],c[i]); 9 }
4 - 查找字符之间的空格个数
1 int count = 0; 2 char str [50]="I love iOS, I have no iPhone"; 3 for (int i =0; i< strlen(str); i++) { 4 if (str[i]==' ') { 5 count ++; 6 } 7 } 8 printf("字符串之间空格的个数为:%d\n",count);
5 - 找出最长名字及其下标
1 char names [4][21]={"Raphael","Donatello","Leonardo da vinci","Michelangelo"}; 2 unsigned long max = 0; 3 int index = 0; 4 for (int i =0; i<4; i++) { 5 unsigned long strLong = strlen(names[i]); 6 if (max < strLong) { 7 max = strLong; 8 index = i; 9 } 10 } 11 printf("最大的字符下标为:%d,其长度为:%lu\n ",index,max);
6 - 将数组元素按照首字母升序排列:冒泡排序
1 char names [4][100]={"Raphael","Donatello","Leonardo da vinci","Michelangelo"}; 2 for (int i =0; i<4-1; i++) { 3 for (int j=0; j<4-1-i; j++) { 4 // 两两比较 5 if (strcmp(names[j], names[j+1])>0) { 6 char temp [20] ={0}; 7 strcpy(temp , names[j]); 8 strcpy(names[j], names[j+1]); 9 strcpy(names[j+1], temp ); 10 } 11 } 12 } 13 for (int i=0; i<4; i++) { 14 printf("%s\n",names[i]); 15 }
分类:
C语言
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)