二维数组练习题
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 }
结果: