南七星之家 发表于 2025-3-18 11:25:57

C语言逐日一练——day_10

引言

        针对初学者,逐日训练几个题,快速上手C语言。第十天。(连续更新中)
        接纳在线OJ的形式
什么是在线OJ?

        在线判题系统(英语:Online Judge,缩写OJ)是一种在编程竞赛中用来测试参赛程序的在线系统,也可以用于平时的训练。
        具体内容可以看一下这篇博客:关于C/C++语言的初学者在哪刷题,怎么刷题-CSDN博客https://csdnimg.cn/release/blog_editor_html/release2.3.8/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=P1C7https://blog.csdn.net/2401_88433210/article/details/146056171?spm=1011.2415.3001.10575&sharefrom=mp_manage_link
 建议从第一天开始做,前面讲了的知识点后面只是会提一下。有不懂的写再评论区里 
        今天的题全是一些二维数组的应用
1.班级成绩输入输出 

        点进去直接做题:班级成绩输入输出_牛客题霸_牛客网 (nowcoder.com)https://csdnimg.cn/release/blog_editor_html/release2.3.8/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=P1C7https://www.nowcoder.com/practice/60d96b08e1cb42e38629d54e37eac008?tpId=107&&tqId=33382&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:
#include<stdio.h>
int main()
{
    double arr;
    for(int i=0;i<5;++i)
    {
       scanf("%lf %lf %lf %lf %lf",&arr,&arr,&arr,&arr,&arr);
    }
    for(int i=0;i<5;++i)
    {
         double sum=0;
      for(int j=0;j<5;++j)
      {
             printf("%.1f ",arr);
            sum+=arr;
      }
      printf("%.1f\n",sum);
    }
    return 0;
} 解析:按照题目要求做就行了
2.矩阵元素定位

        点进去直接多题:矩阵元素定位_牛客题霸_牛客网 (nowcoder.com)https://csdnimg.cn/release/blog_editor_html/release2.3.8/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=P1C7https://www.nowcoder.com/practice/b8e6a46992fe4e11b2822b20561b6d94?tpId=107&&tqId=33383&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:
#include <stdio.h>

int main() {
    int n, m;
    scanf("%d %d", &n, &m);
    int val;
    for (int i = 1; i <= n; i++) {
      for (int j = 1; j <= m; j++) {
            scanf("%d ", &val);
      }
    }
    int x, y;
    scanf("%d %d", &x, &y);
    printf("%d", val);
    return 0;
}  解析:按照题目要求做就行了,简朴题
3.序列重组矩阵

        点进去直接做题:序列重组矩阵_牛客题霸_牛客网 (nowcoder.com)https://csdnimg.cn/release/blog_editor_html/release2.3.8/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=P1C7https://www.nowcoder.com/practice/7548f8f5e44c42fa84fb2323d899a966?tpId=107&&tqId=33384&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking
 参考代码:
#include <stdio.h>

int main()
{
    int n = 0;
    int m = 0;
    int arr = { 0 };
    scanf("%d %d", &n, &m);
    for (int i = 0; i < n; i++)
    {
      for (int j = 0; j < m; j++)
      {
            scanf("%d", &arr);
            printf("%d ", arr);
      }
      printf("\n");
    }
    return 0;
} 解析:按照题目意思就行,简朴的
4.最高身高

        点进去直接做题:最高身高_牛客题霸_牛客网 (nowcoder.com)https://csdnimg.cn/release/blog_editor_html/release2.3.8/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=P1C7https://www.nowcoder.com/practice/258fe0c567ac493f9b7bc9d3669d158d?tpId=107&&tqId=33385&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:
#include <stdio.h>

int main()
{
    int n = 0;
    int m = 0;
    int arr = { 0 };
    scanf("%d %d", &n, &m);
    int max = 0;
    int x = 0;
    int y = 0;
    for (int i = 0; i < n; i++)
    {
      for (int j = 0; j < m; j++)
      {
            scanf("%d", &arr);
            if (arr > max)
            {
                x = i + 1;
                y = j + 1;
                max = arr;
            }
      }
    }
    printf("%d %d\n", x, y);

    return 0;
} 解析:
        核心代码就if语句里面的东西,很简朴。 
5.矩阵相等判断

        点进去直接做题:矩阵相等判断_牛客题霸_牛客网 (nowcoder.com)https://csdnimg.cn/release/blog_editor_html/release2.3.8/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=P1C7https://www.nowcoder.com/practice/2f058b1e89ae43f7ab650c0fd0b71fa8?tpId=107&&tqId=33386&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:
#include <stdio.h>

int main()
{
    int n = 0;
    int m = 0;
    int arr1 = { 0 };
    int arr2 = { 0 };
    //输入
    scanf("%d %d", &n, &m);
    int i = 0;
    for (i = 0; i < n; i++)
    {
      for (int j = 0; j < m; j++)
      {
            scanf("%d", &arr1);
      }
    }
    for (i = 0; i < n; i++)
    {
      for (int j = 0; j < m; j++)
      {
            scanf("%d", &arr2);
            //判断
            if (arr1 != arr2)
            {
                printf("No\n");
                return 0;
            }
      }
    }
    printf("Yes\n");
    return 0;
} 解析:题目让你干啥,你就干啥。
6.上三角矩阵判断

        点进去直接做题:
上三角矩阵判断_牛客题霸_牛客网 (nowcoder.com)https://csdnimg.cn/release/blog_editor_html/release2.3.8/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=P1C7https://www.nowcoder.com/practice/f5a29bacfc514e5a935723857e1245e4?tpId=107&&tqId=33387&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:
//方法一:先将元素进行录入,后进行判别下三角的情况
int main()
{
    int n = 0;
    scanf("%d",&n);
    int i,j;
    int arr = {0};
    for(i=0; i<n;i++)
    {
      for(j=0;j<n;j++)
      {
            scanf("%d",&arr);
      }
    }
    for(i=0; i<n;i++)
    {
      for(j=0;j<i;j++)
      {
            if(arr != 0)
            {
                printf("NO\n");
                return 0;
            }
      }
    }
    printf("YES\n");
    return 0;
}
*/

//方法二:一边录入元素,一边进行判断
int main()
{
    int n = 0;
    scanf("%d",&n);
    int i,j;
    int arr = {0};
    for(i=0; i<n;i++)
    {
      for(j=0;j<n;j++)
      {
            scanf("%d",&arr);
             if(i>j)
         {
               if(arr != 0)
               {
                   //下三角有不是0的就不满足
                   printf("NO");
                   return 0;
               }
         }
      }
    }
    printf("YES\n");
    return 0;
} 解析:找规律,按照题意来做就行。
7.矩阵互换

        点进去直接做题:矩阵互换_牛客题霸_牛客网 (nowcoder.com)https://csdnimg.cn/release/blog_editor_html/release2.3.8/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=P1C7https://www.nowcoder.com/practice/ec44d4ff8c794b2f9205bdddbde96817?tpId=107&&tqId=33389&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:
#include <stdio.h>

int main()
{
    int n = 0;
    int m = 0;
    int arr = { 0 };
    scanf("%d %d", &n, &m);
    for (int i = 0; i < n; i++)
    {
      for (int j = 0; j < m; j++)
      {
            scanf("%d", &arr);
      }
    }
    int k = 0;
    scanf("%d", &k);
    char t = 0;
    int a = 0;
    int b = 0;

    //进行k次变化
    for (int i = 0; i < k; i++)
    {
      scanf(" %c %d %d", &t, &a, &b);
      if (t == 'r')
      {
            //交换a和b行
            for (int j = 0; j < m; j++)
            {
                int tmp = arr;
                arr = arr;
                arr = tmp;
            }
      }
      else if (t == 'c')
      {
            //交换a和b列
            for (int j = 0; j < n; j++)
            {
                int tmp = arr;
                arr = arr;
                arr = tmp;
            }
      }
    }

    for (int i = 0; i < n; i++)
    {
      for (int j = 0; j < m; j++)
      {
            printf("%d ", arr);
      }
      printf("\n");
    }

    return 0;
}  解析:
1. 假如是%c读取字符,肯定要清理前面输入时留下的空缺字符
2. 注意二维数组的下标
3.按照题意模拟就行。
8.矩阵转置

        点进去直接做题:矩阵转置_牛客题霸_牛客网 (nowcoder.com)https://csdnimg.cn/release/blog_editor_html/release2.3.8/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=P1C7https://www.nowcoder.com/practice/351b3d03e410496ab5a407b7ca3fd841?tpId=107&&tqId=33388&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:
#include <stdio.h>

int main() {
    int m, n, b;
    scanf("%d %d", &n, &m);
    for (int i = 0; i < n; i++)
    {
      for (int j = 0; j < m; j++)
      {
            scanf("%d", &b);
      }
    }
    for (int i = 0; i < m; i++)
    {
      for (int j = 0; j < n; j++) {
            printf("%d ", b);
      }
      printf("\n");
    }


    return 0;
} 解析:按照题目标意思做就行。
9.杨辉三角

        点进去直接做题:杨辉三角_牛客题霸_牛客网 (nowcoder.com)https://csdnimg.cn/release/blog_editor_html/release2.3.8/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=P1C7https://www.nowcoder.com/practice/e671c6a913d448318a49be87850adbcc?tpId=107&&tqId=33390&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:
#include <stdio.h>

int main()
{
    int n = 0;
    int arr = { 0 };
    scanf("%d", &n);
    for (int i = 0; i < n; i++)
    {
      for (int j = 0; j <= i; j++)
      {
            if (0 == j || i == j)
            {
                arr = 1;
            }
            else
            {
                arr = arr + arr;
            }
            printf("%5d", arr);
      }
      printf("\n");
    }

    return 0;
} 解析:找规律题,模拟就行,注意题目要求。
10.井字棋

        点进去直接做题:井字棋_牛客题霸_牛客网 (nowcoder.com)https://csdnimg.cn/release/blog_editor_html/release2.3.8/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=P1C7https://www.nowcoder.com/practice/0375c1d206ef48a3894f72aa07b2fdde?tpId=107&&tqId=33391&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:
#include <stdio.h>

int main()
{
    char board = { 0 };
    char flag = 0;
    for (int i = 0; i < 3; i++)
    {
      for (int j = 0; j < 3; j++)
      {
            scanf(" %c", &board);
      }
    }
    //判断输赢
    for (int i = 0; i < 3; i++)
    {
      //行
      if (board == board && board == board && board != 'O')
      {
            flag = board;
            break;
      }
      //列
      if (board == board && board == board && board != 'O')
      {
            flag = board;
            break;
      }
    }
    //对角线
    if (board == board && board == board && board != 'O')
    {
      flag = board;
    }
    if (board == board && board == board && board != 'O')
    {
      flag = board;
    }

    if ('K' == flag)
    {
      printf("KiKi wins!\n");
    }
    else if ('B' == flag)
    {
      printf("BoBo wins!\n");
    }
    else
    {
      printf("No winner!\n");
    }

    return 0;
}  解析:
        把所有赢的环境罗列出来然后排除就行。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: C语言逐日一练——day_10