牛客网初阶练习(10)

x33g5p2x  于2022-02-14 转载在 其他  
字(1.9k)|赞(0)|评价(0)|浏览(364)

1.矩阵相等判定

方法1:

方法2:

2.矩阵交换

3.小乐乐与进制转换

1.矩阵相等判定

方法1:

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int n = 0;
  5. int m = 0;
  6. scanf("%d %d",&n,&m);
  7. int arr1[10][10] = {0};
  8. int arr2[10][10] = {0};
  9. int i = 0;
  10. int j= 0;
  11. for( i = 0;i<n;i++)
  12. {
  13. for(int j = 0;j<m;j++)
  14. {
  15. scanf("%d",&arr1[i][j]);
  16. }
  17. }
  18. for( i = 0;i<n;i++)
  19. {
  20. for(int j = 0;j<m;j++)
  21. {
  22. scanf("%d",&arr2[i][j]);
  23. }
  24. }
  25. int flag = 1;
  26. for( i = 0;i<n;i++)
  27. {
  28. for(int j = 0;j<m;j++)
  29. {
  30. if(arr1[i][j]!=arr2[i][j])
  31. {
  32. flag = 0;
  33. break;
  34. }
  35. }
  36. }
  37. if(flag)
  38. {
  39. printf("Yes\n");
  40. }
  41. else
  42. {
  43. printf("No\n");
  44. }
  45. return 0;
  46. }

方法2:

(这种方法更为简单)

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int n = 0;
  5. int m = 0;
  6. scanf("%d %d",&n,&m);
  7. int arr1[10][10] = {0};
  8. int arr2[10][10] = {0};
  9. int i = 0;
  10. int j= 0;
  11. for( i = 0;i<n;i++)
  12. {
  13. for(int j = 0;j<m;j++)
  14. {
  15. scanf("%d",&arr1[i][j]);
  16. }
  17. }
  18. for( i = 0;i<n;i++)
  19. {
  20. for(int j = 0;j<m;j++)
  21. {
  22. scanf("%d",&arr2[i][j]);
  23. }
  24. }
  25. for( i = 0;i<n;i++)
  26. {
  27. for(int j = 0;j<m;j++)
  28. {
  29. if(arr1[i][j]!=arr2[i][j])
  30. {
  31. printf("No\n");
  32. return 0;
  33. }
  34. }
  35. }
  36. printf("Yes\n");
  37. return 0;
  38. }

2.矩阵交换

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int n = 0;
  5. int m = 0;
  6. int k = 0;
  7. int arr[10][10] = { 0 };
  8. scanf("%d %d", &n, &m);
  9. for (int i = 0; i < n; i++)
  10. {
  11. for (int j = 0; j < m; j++)
  12. {
  13. scanf("%d", &arr[i][j]);
  14. }
  15. }
  16. scanf("%d", &k);//此处输入缓冲区里面有一个\n
  17. char t = 0;
  18. int x = 0;
  19. int y = 0;
  20. //%c前面的空格是用来吸收输入缓冲区里面的\n
  21. //只有读字符的时候才会对输入缓冲区里面的数据是否为空有严格的要求
  22. //而在%d的时候没有要求
  23. for (int i = 0; i < k; i++)
  24. {
  25. scanf(" %c %d %d", &t, &x, &y);
  26. if (t == 'r')
  27. {
  28. for (int j = 0; j < m; j++)
  29. {
  30. int tmp = arr[x-1][j];
  31. arr[x-1][j] = arr[y-1][j];
  32. arr[y-1][j] = tmp;
  33. }
  34. }
  35. else if (t == 'c')
  36. {
  37. for (int j = 0; j < n; j++)
  38. {
  39. int tmp = arr[j][x-1];
  40. arr[j][x-1] = arr[j][y-1];
  41. arr[j][y-1] = tmp;
  42. }
  43. }
  44. }
  45. for (int i = 0; i < n; i++)
  46. {
  47. for (int j = 0; j < m; j++)
  48. {
  49. printf("%d ", arr[i][j]);
  50. }
  51. printf("\n");
  52. }
  53. return 0;
  54. }

3.小乐乐与进制转换

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int n = 0;
  5. int arr[50]={0};
  6. int i = 0;
  7. scanf("%d",&n);
  8. while(n)
  9. {
  10. arr[i] = n%6;
  11. i++;
  12. n/=6;
  13. }
  14. for(i--;i>=0;i--)
  15. {
  16. printf("%d",arr[i]);
  17. }
  18. return 0;
  19. }

相关文章