嵌入式初学-C语言-练习五

二维数组练习题

1.一个二维数组赋了初值,用户输入一个数,在该二维数组中查找。找到则返回行列位置,没找到则 提示。

代码:

cs 复制代码
  1 /*
  2   需求:一个二维数组赋了初值,用户输入一个数,在该二维数组中查找。找到则返回行列位置没找到则提示 
  3 */
  4 #include <stdio.h>
  5 
  6 int main()
  7 {
  8     int arr[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
  9     int num;
 10     int row, col;
 11     int a = 0;
 12     printf("请输入要查找的数字: ");
 13     scanf("%d", &num);
 14 
 15     for (row = 0; row < 3; row++)
 16     {
 17         for (col = 0; col < 3; col++)
 18         {
 19             if (arr[row][col] == num)
 20             {
 21                 printf("数字 %d 在数组中的位置是第 %d 行第 %d 列\n", num, row + 1, col + 1);
 22                 a = 1;
 23             }
 24 
 25         }
 26 
 27     }
 28     if(a == 0)
 29     {
 30     printf("未找到此数字!!\n");
 31     }
 32 
 33     return 0;
 34 }

结果:

2.二维整型数组,求所有元素平均值,求每行最大值,求每列最小值。

代码:

cs 复制代码
  1 /*
  2   需求:二维整型数组,求所有元素平均值,求每行最大值,求每列最小值。
  3 */
  4 #include <stdio.h>
  5 
  6 int main()
  7 {
  8     int sum = 0,max[3] = {0},min[3] = {0};
  9     int arr[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
 10 
 11     for(int i = 0;i < 3;i++)
 12     {
 13         min[i] = arr[0][i];
 14     }
 15 
 16     for(int i = 0;i < 3;i++)
 17     {
 18         max[i] = arr[i][0];
 19         for(int j = 0;j < 3;j++)
 20         {
 21 
 22             if(arr[i][j] < min[j])
 23             {
 24                 min[j] = arr[i][j];
 25             }
 26             else if(arr[i][j] > max[i])
 27             {
 28                 max[i] = arr[i][j];
 29             }
 30             sum += arr[i][j];
 31         }
 32     }
 33 
 34     printf("平均值:%d\n",sum);
 35 
 36     for(int i = 0;i < 3;i++)
 37     {
 38         printf("第%d行最大值:%d\n",i + 1,max[i]);
 39         printf("第%d列最小值:%d\n",i + 1,min[i]);
 40     }
 41 
 42     return 0;
 43 }

结果:

3.在行列相等数组计算主对角线元素的和

代码:

cs 复制代码
  1 /*
  2   需求:在行列相等数组计算主对角线元素的和
  3 */
  4 #include <stdio.h>
  5 
  6 int main()
  7 {
  8     int arr[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
  9     int i,j,sum = 0;
 10 
 11     for(i = 0;i < 3;i++)
 12     {
 13         j = i;
 14         sum += arr[i][j];
 15     }
 16 
 17     printf("主对角线元素的和为:%d\n",sum);
 18 
 19     return 0;
 20 }

结果:

4.计算一个矩阵下三角元素的和

代码:

cs 复制代码
  1 /*
  2   需求:计算一个矩阵下三角元素的和
  3 */
  4 #include <stdio.h>
  5 
  6 int main()
  7 {
  8     int arr[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
  9     int i,j,sum = 0;
 10 
 11     for(i = 0;i < 3;i++)
 12     {
 13         for(j = 0;j <= i;j++)
 14         {
 15         sum += arr[i][j];
 16         }
 17     }
 18 
 19     printf("下三角元素的和为:%d\n",sum);
 20 
 21     return 0;
 22 }

结果:

5.电影院为了答谢影迷的支持,在某一排的某一列座位上放置了一个大礼包,放置礼物的位置具有这 样的规则(行和列的平方和为开店日期 512(5月12日));

'请设计程序找出大礼包的位置,(假定电影院有20排,每排25个座位)'

代码:

cs 复制代码
  1 /**
  2   *电影院为了答谢影迷的支持,在某一排的某一列座位上放置了一个大礼包,放置礼物的位置具有这 样的规则(行和列的平方和为开店日期 512(5月12日));
  3   *'请设计程序找出大礼包的位置,(假定电影院有20排,每排25个座位)'
  4 */
  5 #include <stdio.h>
  6 
  7 int main()
  8 {
  9     int i,j;
 10     int arr[20][25];
 11     for(i = 0;i < 20;i++)
 12     {
 13         for(j = 0;j < 25;j++)
 14         {
 15             if((i+1)*(i+1) + (j+1)*(j+1) == 512)
 16             printf("大礼包的位置在%d行,%d列\n",i+1,j+1);
 17         }
 18     }
 19 
 20     return 0;
 21 }
 22 

结果:

字符数组练习题

1.编写一个程序,读取用户输入的字符串,并将其反转输出。

代码:

cs 复制代码
  1 /*
  2   需求:编写一个程序,读取用户输入的字符串,并将其反转输出。
  3 */
  4 #include <stdio.h>
  5 #include <string.h>
  6 
  7 int main()
  8 {
  9     char arr[20];
 10     char arr_1[20];
 11     long a = 0;
 12     printf("请输入一个字符串:");
 13 
 14     scanf("%s",arr);
 15 
 16     a = strlen(arr);
 17     int j =a - 1;
 18 
 19 
 20     for(int i = 0;i < a;i++)
 21     {
 22         arr_1[j] = arr[i];
 23         j--;
 24     }
 25 
 26     arr_1[a] = '\0';
 27 
 28     printf("您输入的字符串是:%s\n",arr);
 29     printf("反转后的字符串是:%s\n",arr_1);
 30 
 31     return 0;
 32 
 33 }

结果:

2.编写一个程序,判断用户输入的字符串是否为回文(即正反读都一样的字符串)。

代码:

cs 复制代码
  1 /*
  2   需求:编写一个程序,判断用户输入的字符串是否为回文(即正反读都一样的字符串)。
  3 */
  4 
  5 #include <stdio.h>
  6 #include <string.h>
  7 
  8 int main()
  9 {
 10     int p;
 11     char arr[20];
 12     char arr_1[20];
 13     long a = 0;
 14     printf("请输入一个字符串:");
 15 
 16     scanf("%s",arr);
 17 
 18     a = strlen(arr);
 19     int j =a - 1;
 20 
 21 
 22     for(int i = 0;i < a;i++)
 23     {
 24         arr_1[j] = arr[i];
 25         j--;
 26     }
 27 
 28     arr_1[a] = '\0';
 29 
 30     j = 0;
 31 
 32     for(int i = 0;i < a;i++)
 33     {
 34         if(arr_1[j] == arr[i])
 35         {
 36             p = 1;
 37         }
 38         else
 39         {
 40             p = 0;
 41         }
 42         j++;
 43     }
 44 
 45 
 46     printf("您输入的字符串是:%s\n",arr);
 47 
 48     if(p == 1)
 49     {
 50         printf("%s是回文\n",arr);
 51     }
 52     else
 53     {
 54         printf("%s不是回文\n",arr);
 55     }
 56 
 57     return 0;
 58 
 59 }

结果:

相关推荐
LNTON羚通16 分钟前
摄像机视频分析软件下载LiteAIServer视频智能分析平台玩手机打电话检测算法技术的实现
算法·目标检测·音视频·监控·视频监控
湫ccc1 小时前
《Python基础》之字符串格式化输出
开发语言·python
mqiqe1 小时前
Python MySQL通过Binlog 获取变更记录 恢复数据
开发语言·python·mysql
AttackingLin1 小时前
2024强网杯--babyheap house of apple2解法
linux·开发语言·python
哭泣的眼泪4082 小时前
解析粗糙度仪在工业制造及材料科学和建筑工程领域的重要性
python·算法·django·virtualenv·pygame
Ysjt | 深2 小时前
C++多线程编程入门教程(优质版)
java·开发语言·jvm·c++
ephemerals__2 小时前
【c++丨STL】list模拟实现(附源码)
开发语言·c++·list
码农飞飞2 小时前
深入理解Rust的模式匹配
开发语言·后端·rust·模式匹配·解构·结构体和枚举