牛客网习题题解(持续更新中...)
牛客网网址
牛客网:https://www.nowcoder.com/
1. BC107 矩阵转置
利用交换索引实现转置效果
#include <stdio.h>int main()
{int n=0, m=0;scanf("%d %d",&n,&m);int mat[n][m];//输入原矩阵for(int i=0; i<n; i++){for(int j=0; j<m; j++){scanf("%d",&mat[i][j]);}}//输出转置矩阵:直接交换索引来呈现转置效果for(int i=0; i<m; i++){for(int j=0; j<n; j++){printf("%d ",mat[j][i]);}printf("\n");}return 0;
}
2. BC100 有序序列合并
利用冒泡排序实现升序效果
#include <stdio.h>//冒泡排序
void BubbleSort(int arr[], int n)
{//趟数for (int i = 0; i < n - 1; i++){int flag = 1;//标志变量,1已经有序//一趟排序过程for (int j = 0; j < n - 1; j++){if (arr[j] > arr[j + 1]){int t = arr[j];arr[j] = arr[j + 1];arr[j + 1] = t;flag = 0;//进行了排序,尚未有序}}if (flag == 1){break;}}
}int main()
{int n = 0, m = 0;scanf("%d %d", &n, &m);int arr[n + m]; //没必要设置三个数组,将前两个数组内容复制到第三个数组;直接将内容全部输入到arr数组即可for (int i = 0; i < n + m; i++){scanf("%d", &arr[i]);}//将数组排序BubbleSort(arr, n + m);//输出排列后的升序数组for (int i = 0; i < n + m; i++){printf("%d ", arr[i]);}return 0;
}
3.