嵌入式初学-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 }

结果:

相关推荐
架构文摘JGWZ15 分钟前
Java 23 的12 个新特性!!
java·开发语言·学习
leon62516 分钟前
优化算法(一)—遗传算法(Genetic Algorithm)附MATLAB程序
开发语言·算法·matlab
CV工程师小林16 分钟前
【算法】BFS 系列之边权为 1 的最短路问题
数据结构·c++·算法·leetcode·宽度优先
Navigator_Z40 分钟前
数据结构C //线性表(链表)ADT结构及相关函数
c语言·数据结构·算法·链表
还听珊瑚海吗41 分钟前
数据结构—栈和队列
数据结构
Aic山鱼1 小时前
【如何高效学习数据结构:构建编程的坚实基石】
数据结构·学习·算法
white__ice1 小时前
2024.9.19
c++
天玑y1 小时前
算法设计与分析(背包问题
c++·经验分享·笔记·学习·算法·leetcode·蓝桥杯
锦亦之22331 小时前
QT+OSG+OSG-earth如何在窗口显示一个地球
开发语言·qt
我是苏苏1 小时前
Web开发:ABP框架2——入门级别的增删改查Demo
java·开发语言