🔥个人主页:@草莓熊Lotso 🎬作者简介:C++研发方向学习者 📖个人专栏: 《C语言》 《数据结构与算法》《C语言刷题集》《Leetcode刷题指南》 ⭐️人生格言:生活是默默的坚持,毅力是永久的享受。
前言:本篇博客是刷题集中的第十篇,题目都是一些比较基础的IO型题目,适合C语言初学者。特别声明一下,这里提供的答案和思路都并非唯一,仅供参考。
题目链接:班级成绩输入输出_牛客题霸_牛客网
题目描述:

题目示例:

代码演示:
#include <stdio.h>
int main() {
int i = 0;//5个学生
for (i = 0; i < 5; i++)
{
double sum = 0.0;
int j = 0;
double score = 0.0;
for (j = 0; j < 5; j++)
{
scanf("%lf", &score);
sum += score;
printf("%.1lf ", score);
}
printf("%.1lf\n", sum);
}
return 0;
}题目解析:
题目链接:矩阵元素定位_牛客题霸_牛客网
题目描述:

题目示例:

代码演示:
#include <stdio.h>
int main() {
int n=0;
int m=0;
int x=0;
int y=0;
int arr[5][5]={0};
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
scanf("%d ",&arr[i][j]);
}
}
scanf("%d %d",&x,&y);
printf("%d",arr[x][y]);
return 0;
}题目解析:
题目链接:序列重组矩阵_牛客题霸_牛客网
题目描述:

题目示例:

代码演示:
方法1:
#include <ctype.h>
#include <stdio.h>
int main() {
int n=0;
int m=0;
int s[100]={0};
scanf("%d%d",&n,&m);
for(int i=0;i<n*m;i++)
{
scanf("%d",&s[i]);
}
int i=0;
for(int j=0;j<n;j++)
{
for(int k=0;k<m;k++)
{
printf("%d ",s[i]);
i++;
}
printf("\n");
}
return 0;
}方法2:
#include <stdio.h>
int main() {
int n = 0;
int m = 0;
int s[100] = {0};
scanf("%d%d", &n, &m);
for (int i = 0; i < n; i++) {
for (int k = 0; k < m; k++) {
scanf("%d ", &s[i]);
printf("%d ", s[i]);
}
printf("\n");
}
return 0;
}方法3:
#include <stdio.h>
int main() {
int n = 0;
int m = 0;
scanf("%d%d", &n, &m);
int i = 0;
int tmp = 0;
for (i = 1; i <= m * n; i++) {
scanf("%d", &tmp);
printf("%d ", tmp);
if (i % m == 0)
printf("\n");
}
return 0;
}题目解析:
题目链接:最高身高_牛客题霸_牛客网
题目描述:

题目示例:

代码演示:
#include <stdio.h>
int main()
{
int n=0;
int m=0;
scanf("%d %d",&n,&m);
int arr[10][10]={0};
int max=0;
int x=0;
int y=0;
for(int i=1;i<=n;i++)//注意,我特意从1开始;
{
for(int j=1;j<=m;j++)
{
scanf("%d",&arr[i][j]);
if(arr[i][j]>max)
{
max=arr[i][j];
x=i;
y=j;
}
}
}
printf("%d %d",x,y);
return 0;
}题目解析:
题目链接: 矩阵相等判定_牛客题霸_牛客网
题目描述:

题目示例:

代码演示:
#include <stdio.h>
int main() {
int a, b;
int n = 0;
int m = 0;
int arr1[10][10]={0} ;
int arr2[10][10]={0};
scanf("%d %d",&n,&m);
int flag=1;//假设相等
for (int i = 0; i <n; i++) {
for (int j = 0; j < m; j++) {
scanf("%d", &arr1[i][j]);
}
}
for (int i = 0; i <n; i++) {
for (int j = 0; j < m; j++) {
scanf("%d", &arr2[i][j]);
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j <m; j++) {
if(arr1[i][j]!=arr2[i][j])
{
flag=0;
break;
}
}
}
if(flag==1)
printf("Yes\n");
else
printf("No\n");
return 0;
}题目解析:
题目链接:KiKi判断上三角矩阵_牛客题霸_牛客网
题目描述:

题目示例:

代码演示:
#include <stdio.h>
int main() {
int n=0;
int arr[10][10]={0};
scanf("%d",&n);
int flag=1;//假设是上三角矩阵
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
scanf("%d ",&arr[i][j]);
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<i;j++)
{
if(arr[i][j]!=0)
{
flag=0;
break;
}
}
}
if(flag==1)
printf("YES\n");
else
printf("NO\n");
return 0;
}题目解析:
题目链接:矩阵转置_牛客题霸_牛客网
题目描述:

题目示例:


代码演示:
#include <stdio.h>
int main()
{
int n=0;
int m=0;
int arr[10][10]={0};
scanf("%d %d",&n,&m);
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
scanf("%d ",&arr[i][j]);
}
}
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
printf("%d ",arr[j][i]);
}
printf("\n");
}
return 0;
}题目解析:
题目链接:矩阵交换_牛客题霸_牛客网
题目描述:

题目示例:

代码演示:
#include <stdio.h>
int main() {
int n = 0;
int m = 0;
int arr[10][10] = {0};
scanf("%d %d", &n, &m);
for (int i =1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
scanf("%d ", &arr[i][j]);
}
}
int a = 0;
int b = 0;
int k = 0;
char t = 0;
scanf("%d", &k);
while (k) {
scanf(" %c %d %d", &t, &a, &b);
if (t == 'r') { //进行行变换
for (int j = 1; j <= m; j++) {
int temp = arr[a][j];
arr[a][j] = arr[b][j];
arr[b][j] = temp;
}
}
else if (t == 'c') { //进行列变换
for (int i = 1; i <= n; i++) {
int temp = arr[i][a];
arr[i][a] = arr[i][b];
arr[i][b] = temp;
}
}
k--;
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}题目解析: 注意哈,我还是都从1开始的,那么剩下的就是交换行时行为a和b,列变化,列交换同理。输入完k次后,输出就行。
题目链接:杨辉三角_牛客题霸_牛客网
题目描述:

题目示例:

代码演示:
#include <stdio.h>
int main() {
int n=0;
scanf("%d",&n);
int arr[30][30]={0};
for(int i=0;i<n;i++)
{
for(int j=0;j<=i;j++)
{
if(i==j||j==0)
{
arr[i][j]=1;
}
else
{
arr[i][j]=arr[i-1][j]+arr[i-1][j-1];
}
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<=i;j++)
{
printf("%5d",arr[i][j]);
}
printf("\n");
}
return 0;
}题目解析:
题目链接:井字棋_牛客题霸_牛客网
题目描述:

题目示例:

代码演示:
#include <stdio.h>
int main() {
char arr[3][3] = {0};
int i = 0;
int j = 0;
char flag = 'c';
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
scanf("%c", &arr[i][j]);
getchar();
}
}
for (i = 0; i < 3; i++)
{
if (arr[i][0] == arr[i][1] && arr[i][1] == arr[i][2])
{
flag = arr[i][1];
break;
}
if (arr[0][i] == arr[1][i] && arr[1][i] == arr[2][i])
{
flag = arr[1][i];
break;
}
}
if (arr[0][0] == arr[1][1] && arr[1][1] == arr[2][2])
{
flag = arr[1][1];
}
if (arr[0][2] == arr[1][1] && arr[1][1] == arr[2][0])
{
flag = arr[1][1];
}
if (flag == 'K')
printf("KiKi wins!");
else if (flag == 'B')
printf("BoBo wins!");
else
printf("No winner!");
return 0;
}题目解析:
往期回顾:
结语: 本篇文章就到此结束了,C语言刷题集专栏中的第十篇的题目会难点,但有了前面的基础铺垫,这样的难度也是在合理范围内的,大家应该都可以解决,还是非常适合刚学完C语言的朋友们拿来练手,提升自己代码能力的。