算法竞赛入门【码蹄集新手村600题】(MT1100-1120)C语言(一)

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
简介: 算法竞赛入门【码蹄集新手村600题】(MT1100-1120)C语言

码蹄集网站地址:https://www.matiji.net/exam/ojquestionlist


目录

MT1101 带参数的宏II

(1)题目

请编写一个简单程序,把f(x)=x*(x-1)定义成带参数的宏,从键盘输入a,b,将a+b的和作为宏实参计算并输出结果。


格式

输入格式:
输入整型,空格分隔。
输出格式:
输出为实型

样例1

输入:
3 5
输出:
56.000000

(2)参考代码

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

MT1102 长方体

(1)题目

将长方体体积计算公式定义为宏。在主函数中输入长方体长、宽、高求体积。不考虑不合理的输入或是溢出等特殊情况。


格式

输入格式:
输入为实型(正数),空格分隔。
输出格式:
输出为实型

样例1

输入:
3 4 5
输出:
60.000000

(2)参考代码

#include<stdio.h>
#define VOLUME(x, y, z) ((x)*(y)*(z))
int main() 
{
    double x, y, z;
    scanf("%lf %lf %lf", &x, &y, &z);
    printf("%lf\n", VOLUME(x, y, z));
    return 0; 
}

MT1103 球体积

(1)题目

将球体积计算公式定义为宏。在主函数中输入半径求体积。


格式

输入格式:
输入为实型 
输出格式:
输出为实型

样例1

输入:
3.5
输出:
179.594228

(2)参考代码

#include<stdio.h>
#define PI 3.14159
#define VOLUME(r) (4.0/3.0*PI*(r)*(r)*(r))
int main() 
{
    double r;
    scanf("%lf", &r);
    printf("%lf\n", VOLUME(r));
    return 0; 
}

MT1104 三角形

(1)题目


格式

输入格式:
 输入为实型
输出格式: 
输出为实型

样例1

输入格式: 
3 4 5
输出格式: 
6.000000

(2)参考代码

#include<stdio.h>
#include <math.h>
#define Area(a, b ,c, s) (sqrt((s)*((s)-(a))*((s)-(b))*((s)-(c))))
int main() 
{ 
    double a, b, c, s;
    scanf("%lf %lf %lf", &a, &b, &c);
    s = (a + b + c) / 2;
    if (a+b>c && a+c>b && b+c>a)
    {
        printf("%lf", Area(a, b, c, s));
    }
    else
    {
        printf("%d", -1);
    }
    return 0; 
}

MT1105 英寸英尺英里

(1)题目

定义关于长度的宏,英寸/厘米、英尺/米、英里/公里,计算英制与公制单位转换,在主函数中输入数据输出计算结果。假定1英寸=2.54厘米、1英尺=0.31米、1英里=1.61公里。


格式

输入格式:
输入英寸、英尺、英里为实型,空格分隔。
输出格式:
输出厘米、米、公里为实型,空格分隔。保留2位小数。

样例1

输入:
1 1 1
输出:
2.54 0.31 1.61 

(2)参考代码

#include<stdio.h>
#define INCH_cm(x) ((x) * 2.54)
#define FEET_m(x) ((x) * 0.31)
#define MILE_km(x) ((x) * 1.61)
int main() 
{
    double a, b, c;
    scanf("%lf %lf %lf", &a, &b, &c);
    printf("%.2lf %.2lf %.2lf\n", INCH_cm(a), FEET_m(b), MILE_km(c));
    return 0; 
}

MT1106 盎司磅

(1)题目

定义关于重量的宏,盎司/克、磅/公斤,计算美制单位与公制转换,在主函数中输入数据输出计算结果。


格式

输入格式:
输入盎司、磅为实型,空格分隔
输出格式:
输出克、公斤实型,空格分隔。保留2位小数。

样例1

输入格式:
1 1
输出格式: 
28.35 0.45

(2)参考代码

#include<stdio.h>
#define oz_g(oz) ((oz)*28.35)
#define lb_kg(lb) ((lb)*0.45)
int main() 
{ 
    double oz, lb;
    scanf("%lf %lf", &oz, &lb);
    printf("%.2lf %.2lf", oz_g(oz), lb_kg(lb));
    return 0; 
}

MT1107 加仑/升

(1)题目

定义关于容量的宏,加仑/升,计算单位转换,在主函数中输入数据输出计算结果。


格式

输入格式:
输入加仑为实型。
输出格式:
输出升为实型,保留2位小数。

样例1

输入:
1
输出:
3.79 

(2)参考代码

#include<stdio.h>
#define GALLON_LITRE(x) ((x) * 3.79)
int main() 
{
    double x;
    scanf("%lf", &x);
    printf("%.2lf\n", GALLON_LITRE(x));
    return 0; 
}

MT1108 保留小数

(1)题目

将一个浮点型K数保留n(1≤n≤5)位小数(四舍五入)的算法定义为宏。在主函数中输入数据输出计算结果。


格式

输入格式:
输入k为实型,n为整数,空格分隔。
输出格式:
输出为实型

样例1

输入:
3.1415926 3 
输出:
3.142

(2)参考代码

#include<stdio.h>
#define ROUND_UP(k, n) printf("%.*lf", (n), (k))
int main() 
{
    double k;
    int n;
    scanf("%lf %d", &k, &n);
    ROUND_UP(k, n);
    return 0; 
}
相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
1月前
|
搜索推荐 C语言
【排序算法】快速排序升级版--三路快排详解 + 实现(c语言)
本文介绍了快速排序的升级版——三路快排。传统快速排序在处理大量相同元素时效率较低,而三路快排通过将数组分为三部分(小于、等于、大于基准值)来优化这一问题。文章详细讲解了三路快排的实现步骤,并提供了完整的代码示例。
57 4
|
24天前
|
存储 NoSQL 编译器
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
指针是一个变量,它存储另一个变量的内存地址。换句话说,指针“指向”存储在内存中的某个数据。
77 3
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
|
26天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
57 1
|
1月前
|
搜索推荐 算法 C语言
【排序算法】八大排序(上)(c语言实现)(附源码)
本文介绍了四种常见的排序算法:冒泡排序、选择排序、插入排序和希尔排序。通过具体的代码实现和测试数据,详细解释了每种算法的工作原理和性能特点。冒泡排序通过不断交换相邻元素来排序,选择排序通过选择最小元素进行交换,插入排序通过逐步插入元素到已排序部分,而希尔排序则是插入排序的改进版,通过预排序使数据更接近有序,从而提高效率。文章最后总结了这四种算法的空间和时间复杂度,以及它们的稳定性。
105 8
|
1月前
|
搜索推荐 算法 C语言
【排序算法】八大排序(下)(c语言实现)(附源码)
本文继续学习并实现了八大排序算法中的后四种:堆排序、快速排序、归并排序和计数排序。详细介绍了每种排序算法的原理、步骤和代码实现,并通过测试数据展示了它们的性能表现。堆排序利用堆的特性进行排序,快速排序通过递归和多种划分方法实现高效排序,归并排序通过分治法将问题分解后再合并,计数排序则通过统计每个元素的出现次数实现非比较排序。最后,文章还对比了这些排序算法在处理一百万个整形数据时的运行时间,帮助读者了解不同算法的优劣。
124 7
|
1月前
|
机器学习/深度学习 算法 Python
机器学习入门:理解并实现K-近邻算法
机器学习入门:理解并实现K-近邻算法
36 0
|
2月前
|
机器学习/深度学习 算法 大数据
机器学习入门:梯度下降算法(下)
机器学习入门:梯度下降算法(下)
|
2月前
|
机器学习/深度学习 算法 API
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
|
2月前
|
C语言
回溯入门题,数据所有排列方式(c语言)
回溯入门题,数据所有排列方式(c语言)
|
2月前
|
机器学习/深度学习 算法
机器学习入门:梯度下降算法(上)
机器学习入门:梯度下降算法(上)