当前位置:   article > 正文

数组--习题_【输入】有多行。第1行是两个整数n(n≤10)和m(m≤10),表示矩阵有n行m列。接下

【输入】有多行。第1行是两个整数n(n≤10)和m(m≤10),表示矩阵有n行m列。接下

目录

1.将数组A中的内容和数组B中的内容进行交换。(数组一样大)

2.创建一个整形数组,完成对数组的操作。

3.实现一个对整形数组的冒泡排序。

4.描述:(牛客习题)

输入NxM矩阵,矩阵元素均为整数,计算其中大于零的元素之和。

输入描述:

第一行为N M(N: 矩阵行数;M: 矩阵列数,且M,N<=10),接下来的N行为矩阵各行。

输出描述:

一行,其中大于零的元素之和。

5.描述(牛客习题)

KiKi有一个矩阵,他想知道转置后的矩阵(将矩阵的行列互换得到的新矩阵称为转置矩阵),请编程帮他解答。

输入描述:

第一行包含两个整数n和m,表示一个矩阵包含n行m列,用空格分隔。 (1≤n≤10,1≤m≤10)

从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第一个矩阵中的元素。

输出描述:

输出m行n列,为矩阵转置后的结果。每个数后面有一个空格。


1.将数组A中的内容和数组B中的内容进行交换。(数组一样大)

  1. #include<stdio.h>
  2. void swap(int arr1[], int arr2[],int sz)
  3. {
  4. for (int i = 0; i < sz; i++)
  5. {
  6. int tmp = arr1[i];
  7. arr1[i] = arr2[i];
  8. arr2[i] = tmp;
  9. }
  10. }
  11. int main()
  12. {
  13. int arr1[] = { 1,2,3,4,5 };
  14. int arr2[] = { 6,7,8,9,10 };
  15. int sz = sizeof(arr1) / sizeof(arr1[0]);
  16. printf("原数组为:arr1: ");
  17. for (int i = 0; i < sz; i++)
  18. {
  19. printf("%d ", arr1[i]);
  20. }
  21. printf("arr2: ");
  22. for (int i = 0; i < sz; i++)
  23. {
  24. printf("%d ", arr2[i]);
  25. }
  26. printf("\n");
  27. swap(arr1, arr2,sz);
  28. printf("现数组为:arr1: ");
  29. for (int i = 0; i < sz; i++)
  30. {
  31. printf("%d ", arr1[i]);
  32. }
  33. printf("arr2: ");
  34. for (int i = 0; i < sz; i++)
  35. {
  36. printf("%d ", arr2[i]);
  37. }
  38. return 0;
  39. }
'
运行


2.创建一个整形数组,完成对数组的操作。

  1. 实现函数init() 初始化数组为全0

  2. 实现print()  打印数组的每个元素

  3. 实现reverse()  函数完成数组元素的逆置。

     要求:自己设计以上函数的参数,返回值。

  1. #include<stdio.h>
  2. void init(int arr[],int sz)
  3. {
  4. for (int i = 0; i < sz; i++)
  5. {
  6. arr[i] = 0;
  7. }
  8. }
  9. void print(int arr[], int sz)
  10. {
  11. for (int i = 0; i < sz; i++)
  12. {
  13. printf("%d ", arr[i]);
  14. }
  15. }
  16. void reverse(int arr[], int sz)
  17. {
  18. for (int i = 0; i <= sz- i - 1; i++)
  19. {
  20. int tmp = arr[i];
  21. arr[i] = arr[ sz - i - 1];
  22. arr[sz - i - 1] = tmp;
  23. }
  24. for (int i = 0; i < sz; i++)
  25. {
  26. printf("%d ", arr[i]);
  27. }
  28. }
  29. int main()
  30. {
  31. int arr[] = { 0,1,2,3,4,5,6,7,8,9 };
  32. int sz = sizeof(arr) / sizeof(arr[0]);
  33. init(arr,sz);
  34. print(arr, sz);
  35. printf("\n");
  36. reverse(arr, sz);
  37. return 0;
  38. }
'
运行

3.实现一个对整形数组的冒泡排序

  1. #include<stdio.h>
  2. void Bubble_Sort(int arr[], int sz)
  3. {
  4. for (int i = 0; i < sz-1; i++) //趟数
  5. {
  6. for (int j = 0; j < sz - 1 - i; j++) //一趟冒泡排序
  7. {
  8. if (arr[j] > arr[j + 1])
  9. {
  10. int tmp = arr[j];
  11. arr[j] = arr[j + 1];
  12. arr[j + 1] = tmp;
  13. }
  14. }
  15. }
  16. }
  17. int main()
  18. {
  19. int arr[] = { 1,3,5,6,4,7,8,9,2 };
  20. int sz = sizeof(arr) / sizeof(arr[0]);
  21. printf("原数组: ");
  22. for (int i = 0; i < sz; i++)
  23. {
  24. printf("%d ", arr[i]);
  25. }
  26. Bubble_Sort(arr,sz);
  27. printf("\n现数组: ");
  28. for (int i = 0; i < sz; i++)
  29. {
  30. printf("%d ", arr[i]);
  31. }
  32. return 0;
  33. }
'
运行


4.描述:(牛客习题)

输入NxM矩阵,矩阵元素均为整数,计算其中大于零的元素之和。

输入描述:

第一行为N M(N: 矩阵行数;M: 矩阵列数,且M,N<=10),接下来的N行为矩阵各行。

输出描述:

一行,其中大于零的元素之和。

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int i, j, m, n, arr[10][10];
  5. int sum = 0;
  6. scanf("%d %d", &m, &n);
  7. for (int i = 0; i < m; i++)
  8. {
  9. for (int j = 0; j < n; j++)
  10. {
  11. scanf("%d", &arr[i][j]);
  12. }
  13. }
  14. for (int i = 0; i < m; i++)
  15. {
  16. for (int j = 0; j < n; j++)
  17. {
  18. if (arr[i][j] > 0)
  19. {
  20. sum += arr[i][j];
  21. }
  22. }
  23. }
  24. printf("%d", sum);
  25. return 0;
  26. }
'
运行


5.描述(牛客习题)

KiKi有一个矩阵,他想知道转置后的矩阵(将矩阵的行列互换得到的新矩阵称为转置矩阵),请编程帮他解答。

输入描述:

第一行包含两个整数n和m,表示一个矩阵包含n行m列,用空格分隔。 (1≤n≤10,1≤m≤10)

从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第一个矩阵中的元素。

输出描述:

输出m行n列,为矩阵转置后的结果。每个数后面有一个空格。

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int n = 0;
  5. int m = 0;
  6. int arr[10][10] = { 0 };
  7. scanf("%d %d", &n, &m);
  8. int i = 0;
  9. int j = 0;
  10. for (i = 0; i < n; i++)
  11. {
  12. for (j = 0; j < m; j++)
  13. {
  14. scanf("%d", &arr[i][j]);
  15. }
  16. }
  17. for (i = 0; i < m; i++)
  18. {
  19. for (j = 0; j < n; j++)
  20. {
  21. printf("%d ", arr[j][i]);
  22. }
  23. printf("\n");
  24. }
  25. return 0;
  26. }


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/998639
推荐阅读
相关标签
  

闽ICP备14008679号