当前位置: 首页 > news >正文

C语言每日一练——day_3(快速上手C语言)

引言

        针对初学者,每日练习几个题,快速上手C语言。第三天。(会连续更新)

        采用在线OJ的形式

什么是在线OJ?

        在线判题系统(英语:Online Judge,缩写OJ)是一种在编程竞赛中用来测试参赛程序的在线系统,也可以用于平时的练习。

        详细内容可以看一下这篇博客:关于C/C++语言的初学者在哪刷题,怎么刷题-CSDN博客https://blog.csdn.net/2401_88433210/article/details/146056171?spm=1011.2415.3001.10575&sharefrom=mp_manage_link

1. 计算体重指数

        点进去直接做题

计算体重指数_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/422f6341cf1b4212a7f8c703df111389?tpId=107&&tqId=33306&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking

#include <stdio.h>
#include <math.h>
int main()
{
    int a =0;
    int b =0;
    scanf("%d %d",&a,&b);
    float c =pow((1.0*b)/100,2);
    printf ("%.2f",1.0*a/c);
    return 0;
}

解析:

        1.要得到浮点数,要进行浮点数除法,这里就得保证/两端的操作数至少有一个数是浮点数。

        2.pow(n,m)是计算n的m次方的函数, 包含在<math.h>头文件里;

        3. 结果要保留两位小数,所以得是%.2f来打印

2.计算三角形的周长和面积

        点进去直接做题计算三角形的周长和面积_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/109a44d649a142d483314e8a57e2c710?tpId=107&&tqId=33307&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking

#include<stdio.h>
#include<math.h>
#define pi 3.1415926
int main(){
    int a,b,c;
    scanf("%d %d %d",&a,&b,&c);
    float circumference = a+b+c;//周长
    float d = circumference/2.0;
    float area = sqrt(d*(d-a)*(d-b)*(d-c));//sqrt开平方
    printf("circumference=%.2f area=%.2f",circumference,area);
    return 0;
     
}

解析: 

        1.借助海伦公式来求面积,

        海伦公式,又称希伦公式、海龙公式,是已知三角形三边长度求其面积的一个经典公式。以下是其具体信息:
 
公式表达式
        S = \sqrt{p(p - a)(p - b)(p - c)},其中S表示三角形的面积,a、b、c为三角形的三条边长,p=(a + b + c) / 2,即三角形周长的一半。

        2.sqrt是开平方函数,包含在头文件<math.h>;     

   3.计算球体的体积

                点进去直接做题

计算球体的体积_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/0f5d9bfcd63b47fda2052a583b1fbd1f?tpId=107&&tqId=33308&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking

int main()
{
    float r;

    double V;//因为float只占四个字节,有效位是7位 需要用double

    scanf("%f",&r);

    V=(4.000*3.1415926*r*r*r)/3.000;

         printf("%.3f",V);
    return 0;
}

解析:

        注意,输入输出,照着公式写代码就行。

这个题目,如果使用 float 来求解,答案的精度是不够的,所以试错后,使用double类型合适。

这里要知道float和double为啥进度有区别,简单介绍一下,float在内存中使用4个字节,double在内存中使用8个字节,使用double的精度更高

4.成绩输入输出 

        点进去直接做题      

成绩输入输出_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/eb49750ef0de47168c21761de086d97c?tpId=107&&tqId=33291&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking


方案一:
#include <stdio.h>
int main()
{
    int a, b, c = 0;
    scanf("%d %d %d", &a, &b, &c);
    printf("score1=%d,score2=%d,score3=%d", a, b, c);
    return 0;
}

方案二:
#include <stdio.h>
 
int main() {
    int smb[3] = {0}; //用数组来存
    scanf("%d %d %d", &smb[0], &smb[1], &smb[2]);
    printf("score1=%d,score2=%d,score3=%d", smb[0], smb[1], smb[2]);
    return 0;
}

解析:非常简单的一道输入输出题

5.变种水仙花

        点进去直接做题

变种水仙花_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/c178e3f5cc4641dfbc8b020ae79e2b71?tpId=107&&tqId=33319&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

//法一:暴力解法:
#include <stdio.h>
#include <stdbool.h>

bool P(int x)
{
    int a = x % 10; //倒数1位
    int i = x / 10;  //前四位
    int h = x / 100; // 前三位
    int b = x % 100;  //倒数2 位
    int g = x / 1000; // 前两位
    int c = x % 1000; // 倒数3 位
    int d = x % 10000; // 倒数4 位
    int f = x / 10000; // 第一位 
    if((a * i + h * b + g * c + d * f) == x) return true;
    return false;
}


int main() {
    int a, b;
    for(int i = 10000; i <= 99999; i++)
    {
        if(P(i))
        printf("%d ", i);
    }
    return 0;
}

//法二:找到规律
#include<stdio.h>
int main()
{
    int i,j;
    for(i=10000;i<99999;i++)
    {
        int sum=0;
        for(j=10;j<=10000;j=10*j)
        {
            sum+=(i/j)*(i%j);
        }
        if(sum==i)
            printf("%d ",i);
    }
    return 0;
}

解析:

        分析题目后发现,lily数求和的每一项都是对同一个数(10/100/1000...)的取模或者整除取商。 这样的话,产生10,100,1000,10000 这些数字,分别对被判断的数字取模或者取商,然后乘起来,再计算和,再判断就行。

6. kiki算数

        点进去直接做题:

kiki算数_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/bcaf710fb58a44e1b678a890e6e90d7c?tpId=107&&tqId=33301&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

代码一:
#include<stdio.h>
int main(){
    int a = 0, b = 0;
    scanf("%d %d",&a,&b);
    printf("%d\n",(a+b)%100);
    return 0;
}


代码二:
#include<stdio.h>
int main(){
    int a = 0, b = 0;
    scanf("%d %d",&a,&b);
    printf("%d\n",(a+b)%100);
    return 0;
}

解析:非常简单的一道模拟题 

相关文章:

  • 伽马函数相关知识点及其与概率论知识的结合
  • 内网安全-横向移动PTH 哈希PTT 票据PTK 密匙Kerberos密码喷射
  • Nginx 配置 SSL(HTTPS)详解
  • 嵌入式学习第二十四天--网络 服务器
  • 如何使用postman来测试接口
  • 联核科技AGV无人叉车有哪些安全防护措施?
  • 「Unity3D」UGUI将元素固定在,距离屏幕边缘的某个比例,以及保持元素自身比例
  • 概念|RabbitMQ 消息生命周期 待消费的消息和待应答的消息有什么区别
  • 手机号实名认证接口:数字时代的安全与便捷保障
  • 设计模式-结构型模式-桥接模式
  • GB28181视频平台LiveGBS在设置公网IP收流时,如何自定义修改收流端口区间
  • Docker Compose 部署 steamcmd 安装奈斯服务端
  • Kafka,Mq,Redis作为消息队列使用时的差异?|消息队列
  • 计算机视觉应用|自动驾驶的感知革命:多传感器融合架构的技术演进与落地实践
  • 从零开始的python学习(五)P71+P72+P73+P74
  • Redis6.2.6下载和安装
  • ①Modbus TCP转Modbus RTU/ASCII网关同步采集无需编程高速轻松组网
  • 广告营销反欺诈
  • 【Linux】38.网络基础(2.1)
  • K8S学习之基础二十一:k8s的持久化存储之emptyDir
  • 怎么做可以访问网站连接加密/百度一下百度搜索
  • 成都网站建设app开发/seo对网站优化
  • 响应式网站广州网站建设/网盘搜索引擎入口
  • html代码快捷键/如何优化关键词搜索
  • 天津网站开发工资水平/上海牛巨仁seo
  • nike网站建设分析/营销网站搭建