刷题---C语言

这篇具有很好参考价值的文章主要介绍了刷题---C语言。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言:

一.刷题(1)

1.1打印X图案

1.2打印带空格直角三角形图案

1.3小乐乐改数字

1.4牛牛的线段

2.刷题(2)

2.1判断奇偶性

2.2及格分数

2.3kiki算术

2.4(a+b-c)*d

2.5KiKi算期末成绩


前言:

博文结构开头是本文涉及的题目

牛客网链接;题目截图;【不太懂的会加百度词条】

解题思路;代码通过截图;代码实现;该题收获总结

以上就是本刷题专栏的结构---旨在尽快提升编程能力设置的例行格式

  今日份题目有小乐乐改数字、KiKi算期末成绩、(a+b-c)*d、牛牛的线段、kiki算数、及格分数、判断整数奇偶性、打印X图案、打印带空格直角三角形图案

  较有难度的是:打印X图案、打印带空格直角三角形图案、小乐乐改数字、牛牛的线段。博主先讲这些。


一.刷题(1)

1.1打印X图案

  牛客网链接:OJ链接

刷题---C语言

  解题思路我们输入的数字是行数,很明显这个X图案是由*和空格组合打印出来的,空格如果算上,这是一个n行n列的二维数组正反对角线打印*,其余打印空格

刷题---C语言

#include <stdio.h>
int main()
{
    int n = 0;
    //多组输入
    while(~scanf("%d", &n))
    {
        int i = 0;
        //打印n行
        for(i = 0; i < n; i++)
        {
            int j = 0;
            //打印第i行里的n列
            for(j = 0; j < n; j++)
            {
                //i和j相等是正对角线
                //i+j等于n-1是反对角线
                if(i == j || i + j == n - 1)
                {
                    printf("*");
                }
                else
                {
                    printf(" ");
                }
            }
            //打印完一列换行
            printf("\n");
        }
    }
    return 0;
}

  收获总结正对角线是行和列相等的情况,反对角线是行和列之和等于行数减1;  多组输入的另一中表示方法~scanf("%d", &n);

  补充当scanf读取失败时会返回EOF,EOF的值是-1,如果对-1按位取反(~),由于-1的补码为全1,全部取反就会变成全0,结果就为0(假)

1.2打印带空格直角三角形图案

  牛客网链接:OJ链接

刷题---C语言

  解题思路这道题要求我们输入确定打印的行数,观察一下,这个图形由空格和*组成的,先打印空格,再打印*,并且如果看成是5行5列的二维数组打印单元空格需要两个,打印单元*要加空格

刷题---C语言

#include <stdio.h>
int main()
{
    int n = 0;
    //多组输入
    while(scanf("%d", &n) != EOF)
    {
        int i = 0;
        //打印n行
        for(i = 0; i < n; i++)
        {
            int j = 0;
            //打印第i行里的n列
            //1.先打印空格单元
            for(j = 0; j < n - 1 - i; j++)
            {
                //两个空格
                printf("  ");
            }
            //2.打印*加空格
            for(j = 0; j <= i; j++)
            {
                printf("* ");
            }
            //打印完一列换行
            printf("\n");
        }
    }
    return 0;
}

  收获总结在打印这种一列(横向看)由两种单元组成的时候,控制循环是关键观察分析在打印第一行的时候,有4个单元,第二行有3个单元空格,一直到0在打印第一列的时候需要循环4次,用n的话是打印5次,用n-1的话一直是打印4次,再减去随行数增加的行数i,推断一下,i为0的时候,j<n-1-i,单元空格打印4次,i为1时,j<n-1-i,单元空格打印3次,符合就这么做在控制*空格的时候,打印一次,两次,直到n次,j<=i可以在i等于0的时候打印1次,i为1的时候打印两次,符合。也可以这样j<i+1

1.3小乐乐改数字

  牛客网链接:OJ链接

刷题---C语言

  解题思路:这道题的意思是说,输入一个整数,把这个整数里的每一位换成0或1,对应的规则是,如果该位是奇数,改成1,偶数改成0我们给出一个存放32个整型的数组,然后把这个整数的每一位取出来放在数组里,最后再把每一位根据它是第几位,乘上相应的权重后,全部加起来就是我们要求的更换后的数字,最后打印出来

刷题---C语言

#include <stdio.h>
#include <math.h>
int main()
{
    int n = 0;
    scanf("%d", &n);
    int arr[32] = {0};
    int i = 0;
    //从低取出n的每一位放到数组里
    while(n)
    {
        //偶数放0
        if(n % 2 == 0)
        {
            arr[i++] = 0;
        } 
        //奇数放1
        else
        {
            arr[i++] = 1;
        }
        //丢弃掉最低的一位
        n /= 10;    
    }
    //由于我们都是放完后,数组的下一位等待放
    //最后一次n已经被改成0,所以让i--变成数组的末下标
    for(i--;i>=0;i--)
    {
        //最后变成的数字是10进制
        n += arr[i] * pow(10, i);
    }
    printf("%d\n", n);
    return 0;
}

刷题---C语言

  收获总结循环取模,除法,对数组的每一位进行分离拆解;提高在循环中对下标的控制能力;拓宽思维

1.4牛牛的线段

  牛客网链接:OJ链接

刷题---C语言

  解题思路不要看错题目的输入,睁大眼睛看

刷题---C语言

#include <stdio.h>
#include <math.h>
int main()
{
    int x1, y1;
    int x2, y2;
    //题目说分两组输入
    scanf("%d %d", &x1, &y1);
    scanf("%d %d", &x2, &y2);
    //由于我们没有绝对值,所以要保证是大的数减小的数
    int n = x1>x2?x1-x2:x2-x1;
    int m = y1>y2?y1-y2:y2-y1;\
    //使用一个新的变量接收它们的和,不能直接放在printf里链式访问
    int end = pow(n, 2)+pow(m, 2);
    printf("%d\n", end); 
    return 0;
}

  收获总结第一就是要看清题目,博主第一次在尝试解的时候,对应的输入弄混了,拷到VS里调试一番才知道哪里出问题了;printf("%d\n", pow(n, 2)+pow(m, 2));这个代码它跑不过去,初步判断是因为这是两个函数,它不是像我们想的那样,求出它们的和之后再以整型的方式打印出来,它这样写是错误的最后就是锻炼代码能力

刷题---C语言

  OK,较难一点的讲完后,把简单的顺便一提吧~都是刷题的见证

2.刷题(2)

2.1判断奇偶性

  牛客网链接:OJ链接

刷题---C语言

  解题思路能被2整除表示成 x % 2 == 0

#include <stdio.h>
int main() {
    int n = 0;
    while(~scanf("%d", &n))
    {
        if(n % 2 == 0)
        {
            printf("Even\n");
        }
        else 
        {
            printf("Odd\n");
        }
    }
    return 0;
}

  收获总结熟练判断奇数偶数的代码敲法;锻炼代码能力

2.2及格分数

  牛客网链接:OJ链接

刷题---C语言

刷题---C语言

#include <stdio.h>
int main() {
    int n = 0;
    while(scanf("%d", &n) != EOF)
    {
        if(n >= 60)
        {
            printf("Pass\n");
        }
        else 
        {
            printf("Fail\n");
        }
    }
    return 0;
}

  收获总结锻炼代码能力

2.3kiki算术

  牛客网链接:OJ链接

刷题---C语言

#include <stdio.h>
#include <math.h>
int main()
{
    long long a, b, sum;
    scanf("%lld %lld", &a, &b);
    sum = a + b;
    int i = 0;
    int n = 2;
    int k = 0;
    while(n--)
    {
        k += sum % 10 * pow(10, i);
        i++;
        sum /= 10;
    }
    printf("%d\n", k);
    return 0;
}

  收获总结对于一个有可能溢出的情况,我们需要使用long long类型;锻炼代码能力

2.4(a+b-c)*d

  牛客网链接:OJ链接

刷题---C语言

#include <stdio.h>
int main() {
    int a, b, c, d;
    scanf("%d %d %d %d", &a, &b, &c, &d);
    printf("%d\n", (a+b-c)*d);
    return 0;
}

  收获总结:锻炼代码能力

2.5KiKi算期末成绩

  牛客网链接:OJ链接

刷题---C语言

#include <stdio.h>
int main() {
    float a, b, c, d;
    scanf("%f %f %f %f", &a, &b, &c, &d);
    float sum = (a * 0.2)+(b * 0.1)+(c * 0.2)+(d * 0.5);
    printf("%.1f\n", sum);
    return 0;
}

  收获总结如果前面输入的地方显示的是一些整数,后面输出的结果又要求是浮点数,那么最开始的输入我们用浮点数来接收,而不是整数;锻炼代码能力

  OK今日份刷题总结到这里,休息一会吧,再接着刷。


  训言:

  保证理解的前提下,保证质量的前提下,多刷题,最后总结!!!!文章来源地址https://www.toymoban.com/news/detail-464649.html

到了这里,关于刷题---C语言的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 力扣刷题实录(大厂用题)—— 前言

    力扣刷题笔记与力扣官方的解答有什么区别吗?为什么不直接去看官方的解答呢 ?并且官方的解答部分还有视频讲解。 这个问题困扰了我很长时间,我不断地怀疑自己做笔记是否有意义。 后来有一个小伙伴问我问题的时候我悟了,那时手头事情比较多,我说为什么不看官方

    2024年02月09日
    浏览(102)
  • 《Git入门实践教程》前言+目录

    版本控制系统(VCS)在项目开发中异常重要,但和在校大学生的交流中知道,这个重要方向并未受到重视。具备这一技能,既是项目开发能力的体现,也可为各种面试加码。在学习体验后知道,Git多样化平台、多种操作方式、丰富的资源为业内人士提供了方便的同时,也造成

    2024年02月10日
    浏览(50)
  • FPGA学习实践之旅——前言及目录

    很早就有在博客中记录技术细节,分享一些自己体会的想法,拖着拖着也就到了现在。毕业至今已经半年有余,随着项目越来越深入,感觉可以慢慢进行总结工作了。趁着2024伊始,就先开个头吧,这篇博客暂时作为汇总篇,记录在这几个月以及之后从FPGA初学者到也算有一定

    2024年02月03日
    浏览(35)
  • C语言 棱形图案

    目录  一、问题分析 上部分: 下部分:  二、代码演示 如上图所示,我们可以将棱形进行拆解,分为上下两个部分。  通过观察,我们得到   单边空格数 =  上半部分总行数   -   行数  - 1   而    星号 =  行数 × 2   + 1 所以我们设  line  为上半部分总行数   i 为行

    2024年02月12日
    浏览(19)
  • 【C语言】-- X型图案

           今天刷了牛客网上的一道题,不难,但思路很重要,否则你就得写一长串代码,下面是要求。牛客网链接-X形图案。 下面是两组示例。        通过观察示例,我们发现输入的数字是奇数时,图案最中间只有一个*,其余行均输出两个*。而若输入的数字为偶数时,图案

    2024年02月12日
    浏览(22)
  • C语言编程-输出心形图案

    目录 方法1:for循环输出图案 方法2:使用心形公式 使用pow()函数修改程序 方法3:使用心形公式 方法1补充:符号的输出可以用printf()实现也可以用putchar()实现,构成图案的符号可以试着用字符型变量代替,看官可以自行修改。  实现代码 效果        实现代码 效果图 用 s

    2024年02月15日
    浏览(33)
  • C语言或Java-x型图案

    描述         KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的X形图案。 输入描述         多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。 输出描述         针对每行输入,输出用

    2024年02月15日
    浏览(31)
  • Linux:使用for+find查找文件并cp到其他目录,文件名带有空格

    在终端窗口中,用 shell 命令,批量拷贝文件到指定目录。 我是在 Windows 系统上,通过 git bash 终端来执行 shell 命令的。 结果: 于是把 find 命令单独拿出来执行: 结果: 发现文件路径和文件名存在空格。 查找解决办法 复制时,如何处理带空格的文件路径或文件名。 查找结

    2024年01月22日
    浏览(45)
  • C语言数据结构(0)——前言

    欢迎来到博主的新专栏——C语言与数据结构 博主id:代码小豪 在前两个专栏当中,博主已经大致的讲过了C语言中的大部分使用方法。大家都知道,学习英语时,首先掌握的是单词,随后学习语法,如此才能融会贯通的学习英语。如果学英文只会单词,那么阅读虽然不成问题

    2024年01月17日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包