MT1331-MT1340 码题集 (c 语言详解)

news2024/11/24 22:56:57

MT1341·反比例函数

c 语言实现代码

#include <stdio.h>

double f(double x) { return 1.0 / x; }

double trapezoidal_integration(double a, double b, int n) {
    // computer step length
    double h = (b - a) / n;

    // computer points value
    double sum = (f(a) + f(b)) / 2.0;

    // summation middle function value
    for (int i = 1; i < n; i++) {
        double x = a + i * h;
        sum += f(x);
    }

    // last: mul * step
    return sum * h;
}

int main() {
    double a, b;
    int n = 1000;
    scanf("%lf %lf", &a, &b);
    if (a > 0 && a < b) {
        double result = trapezoidal_integration(a, b, n);
        printf("%.2lf", result);
    }
    return 0;
}

MT1342·函数积分

 

c 语言实现代码

#include <math.h>
#include <stdio.h>

// 定义函数 f(x) = 1 / (1 + x)
double f(double x) { return 1.0 / (1.0 + x); }

int main() {
    int a, b;
    double ans = 0, h = 0.001;
    scanf("%d %d", &a, &b);
    double x = a;
    while (x + h <= b) {
        ans += (f(x) + f(x + h)) * h / 2;
        x += h;
    }
    printf("%lf",ans);
    return 0;
}

 MT1343·积分

c 语言代码实现

#include <math.h>
#include <stdio.h>

// 定义函数 f(x)=1/(1+x*x),
double f(double x) { return 1.0 / (1.0 + x * x); }

int main() {
    int a, b;
    double ans = 0, h = 0.001;
    scanf("%d %d", &a, &b);
    double x = a;
    while (x + h <= b) {
        ans += (f(x) + f(x + h)) * h / 2;
        x += h;
    }
    printf("%lf",ans);
    return 0;
}

 MT1344·组合

c 语言代码实现 

#include <stdio.h>

int fac(int n) {
    if (n == 1 || n == 0)
        return 1;
    int result = 1;
    for (int i = 2; i <= n; i++) {
        result *= i; // 计算 n!
    }
    return result;
}

int C(int m, int n) {
    if (m < 0 || m > n)
        return 0;
    return fac(n) / (fac(m) * fac(n - m));
}
int main() {
    int m, n;
    scanf("%d %d", &m, &n);
    printf("%d", C(n, m));
    return 0;
}

MT1345·分段函数

 

c 语言代码实现

#include <math.h>
#include <stdio.h>
double Y(double x) {
    if (x >= 0)
        return sqrt(x);
    return x + 33;
}
int main() {
    double x;
    scanf("%lf", &x);
    printf("%lf", Y(x));
    return 0;
}

MT1346·加密

 

c 语言代码实现

#include <stdio.h>

int encrypt(int number) {
    int digits[4];
    for (int i = 3; i >= 0; i--) {
        digits[i] = number % 10;
        number /= 10;
    }
    for (int i = 0; i < 4; i++) {
        digits[i] = (digits[i] + 5) % 10;
    }

    int temp = digits[0];
    digits[0] = digits[3];
    digits[3] = temp;

    temp = digits[1];
    digits[1] = digits[2];
    digits[2] = temp;

    int encrypted_number = 0;
    for (int i = 0; i < 4; i++) {
        encrypted_number = encrypted_number * 10 + digits[i];
    }
    return encrypted_number;
}

int main() {
    int number;
    scanf("%d", &number);
    int encrypted_number = encrypt(number);
    printf("%d", encrypted_number);
    return 0;
}

MT1347·数组计算

 

c 语言代码实现

#include <stdio.h>

void add(int A[], int B[], int C[], int N) {
    for (int i = 0; i < N; i++) {
        C[i] = A[i] + B[i];
    }
}

void subtract(int A[], int B[], int C[], int N) {
    for (int i = 0; i < N; i++) {
        C[i] = A[i] - B[i];
    }
}

void multiply(int A[], int B[], int C[], int N) {
    for (int i = 0; i < N; i++) {
        C[i] = A[i] * B[i];
    }
}

void divide(int A[], int B[], int C[], int N) {
    for (int i = 0; i < N; i++) {
        if (B[i] != 0) {
            C[i] = A[i] / B[i];
        } else {
            printf("Error: Division by zero at index %d\n", i);
            C[i] = 0;
        }
    }
}

int main() {
    int N;
    scanf("%d", &N);

    int A[N], B[N], C[N];

    for (int i = 0; i < N; i++) {
        scanf("%d", &A[i]);
    }

    for (int i = 0; i < N; i++) {
        scanf("%d", &B[i]);
    }

    char operator;
    scanf(" %c", &operator); // 注意前面的空格,确保读取字符时跳过空白字符

    // 根据运算符调用相应的函数
    switch (operator) {
    case '+':
        add(A, B, C, N);
        break;
    case '-':
        subtract(A, B, C, N);
        break;
    case '*':
        multiply(A, B, C, N);
        break;
    case '/':
        divide(A, B, C, N);
        break;
    default:
        printf("无效的运算符\n");
        return 1;
    }

    // 输出结果
    for (int i = 0; i < N; i++) {
        printf("%d ", C[i]);
    }
    printf("\n");

    return 0;
}

MT1348·方程系数

 

c 语言代码实现

#include <stdio.h>
// 函数:求两个数的最大公约数 (GCD)
int gcd(int a, int b) {
    while (b != 0) {
        int temp = b;
        b = a % b;
        a = temp;
    }
    return a;
}

void min(int a, int b) {
    int g = gcd(a, b);
    int x = b / g;
    int y = a / g;
    printf("%d %d", x, y);
}
int main() {
    int a, b;
    scanf("%d %d", &a, &b);
    min(a, b);

    return 0;
}

MT1349·欧几里德算法

c 语言实现代码

#include <stdio.h>
int gcd(int a, int b) {
    while (b != 0) {
        int temp = b;
        b = a % b;
        a = temp;
    }
    return a;
}
int main() {
    int a, b;
    scanf("%d %d", &a, &b);
    printf("%d",gcd(a, b));
    return 0;
}

 MT1350·分数计算

#include <stdio.h>
#include <stdlib.h>

// 计算最大公约数
int gcd(int a, int b) {
    while (b != 0) {
        int temp = b;
        b = a % b;
        a = temp;
    }
    return a;
}

// 化简分数
void simplify(int *numerator, int *denominator) {
    int g = gcd(abs(*numerator), abs(*denominator));
    *numerator /= g;
    *denominator /= g;
}

// 处理分数加减运算
void fraction_operation(const char *input) {
    int A, B, C, D;
    char op;

    // 解析输入
    sscanf(input, "%d/%d %c %d/%d", &A, &B, &op, &C, &D);

    int numerator, denominator;

    // 根据运算符进行加法或减法
    if (op == '+') {
        numerator = A * D + B * C; // A/B + C/D = (A*D + B*C) / (B*D)
        denominator = B * D;
    } else if (op == '-') {
        numerator = A * D - B * C; // A/B - C/D = (A*D - B*C) / (B*D)
        denominator = B * D;
    } else {
        printf("无效的运算符\n");
        return;
    }

    // 化简分数
    simplify(&numerator, &denominator);

    // 输出结果
    if (numerator == 0) {
        printf("0\n");
    } else {
        // 确保分母为正
        if (denominator < 0) {
            numerator = -numerator;
            denominator = -denominator;
        }
        printf("%d/%d\n", numerator, denominator);
    }
}

int main() {
    char input[50];

    // 输入分数运算
    fgets(input, sizeof(input), stdin);

    // 处理分数运算
    fraction_operation(input);

    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2212342.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux的sed命令

学习链接 Linux文本处理器sed - B站视频 文章目录 学习链接基础介绍语法格式sed的处理过程sed的选项-n-e-f-r-i pattern的7种用法sed中的编辑命令详解p 打印d 删除a 行后追加i 行前追加r 行后追加指定文件内容w 行追加到其它文件中 替换操作s/pattern/strings/pattern/string/…

【AI论文精读4】RAG论文综述2(微软亚研院 2409)P2-问题定义

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI大项目】【AI应用】 P1 二、问题定义 数据增强的大语言模型&#xff08;LLM&#xff09;应用可以采取多种形式&#xff0c;从常见的基于领域特定数据的问答机器人&#xff0c;到复杂数据管道中的语义处理操作&#x…

AI工具在论文选题方面可以提供的帮助

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 在论文写作中&#xff0c;选题是决定研究质量和成果的关键步骤。随着人工智能技术的快速发展&#xff0c;AI工具在论文选题方面的应用逐渐受到关注。通过智能算法和大数据分析&#xff…

selenium安装

一、安装selenium 1&#xff0c;安装selenium -- 命令&#xff1a; pip install selenium -- 网络不稳的请换源安装&#xff1a; pip install selenium -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com 二、安装chrome webdriver 1.查看谷歌浏览器版本 …

Excel:vba实现合并工作表(表头相同)

这个代码应该也适用于一些表头相同的工作表的汇总&#xff0c;只需要修改想要遍历的表&#xff0c;适用于处理大量表头相同的表的合并 这里的汇总合并表 total 是我事先创建的&#xff0c;我觉得比用vba代码创建要容易一下&#xff0c;如果不事先创建汇总表就用下面的代码&…

二十一、浮动(1 文本)

<!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title></title> <style> img{ widows: 100px; float: left;/*脱离文档流*/ …

BUG调试记录:C++中有符号类型和无符号类型在自动补位时的差异

BUG调试记录&#xff1a;C中有符号类型和无符号类型在自动补位时的差异 昨天和同事一起干活的过程中&#xff0c;项目中一个函数的计算结果出现了问题&#xff0c;即使我们反复对照流程图并进行了一系列的手算也没有发现任何编码上的差错&#xff0c;在逻辑上整个函数的编写是完…

【C++入门(7)】string

一、与C语言的联系 C的string类其实是从C语言的字符串演变过来的&#xff0c;是STL中用于处理字符串的一个容器。 在C语言中&#xff0c;字符串是以 \0 为结尾的一串字符&#xff0c;为了便于操作&#xff0c;C语言标准库中也提供了不少str系列的库函数供人使用。但是这些库函…

Java生成图片_基于Spring AI

Spring AI 优势 过去&#xff0c;使用Java编写AI应用时面临的主要困境是没有统一且标准的封装库&#xff0c;开发者需自行对接各个AI服务提供商的接口&#xff0c;导致代码复杂度高、迁移成本大。如今&#xff0c;Spring AI Alibaba的出现极大地缓解了这一问题&#xff0c;它提…

vue3之生命周期钩子

Vue 组件实例生命周期 每个 Vue 组件实例在创建时都需要经历一系列的初始化步骤&#xff0c;比如设置好数据侦听&#xff0c;编译模板&#xff0c;挂载实例到 DOM&#xff0c;以及在数据改变时更新 DOM。在此过程中&#xff0c;它也会运行被称为生命周期钩子的函数&#xff0c…

基于Arduino的燃气泄漏检测系统与自动切断调节器

Arduino LPG燃气泄漏检测系统与自动切断调节器 引言 大家好&#xff0c;今天我要分享一个非常实用的项目——Arduino LPG燃气泄漏检测系统与自动切断调节器。这个项目的重要性不言而喻&#xff0c;因为燃气泄漏是一个严重的安全隐患。在厨房烹饪时&#xff0c;我们可能会忘记…

望繁信科技成功签约国显科技 流程挖掘助力制造业智造未来

近日&#xff0c;上海望繁信科技有限公司&#xff08;简称“望繁信科技”&#xff09;成功与深圳市国显科技有限公司&#xff08;简称“国显科技”&#xff09;达成合作。国显科技作为全球领先的TFT-LCD液晶显示及Mini/Micro LED显示产品供应商&#xff0c;致力于为笔记本、手机…

设计模式02-桥接模式(Java)

4.2 桥接模式 **1.定义&#xff1a;**将抽象与实现分离&#xff0c;使它们可以独立变化。它是用组合关系代替继承关系来实现&#xff0c;从而降低了抽象和实现这两个可变维度的耦合度。 2.结构&#xff1a; 抽象化角色 &#xff1a;定义抽象类&#xff0c;并包含一个对实现化…

Spring Security无脑使用

步骤1&#xff1a;添加Spring Security依赖 在你的Spring Boot项目的pom.xml文件中&#xff0c;添加Spring Security的依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</art…

数据库的特点

数据库是有组织的&#xff0c;规范的把数据保存起来的。 怎么个组织的&#xff0c;规范的&#xff1f; 数据库的特点&#xff1a; 1.将数据放到数据表格&#xff08;二维表&#xff09;中&#xff0c;在将表格放到库中。 2.一个数据库中可以有多张表&#xff0c;每个表都有一…

【OpenCV】(四)—— 边界填充

在OpenCV的图像处理中&#xff0c;边界填充主要用于在图像边缘添加额外的像素。这项技术在多种图像处理任务中都有重要的应用&#xff0c;包括但不限于卷积操作、图像缩放、形态学操作等。 opencv中边界填充的主要方法为copyMakeBorder&#xff0c;其函数原型如下&#xff1a;…

分享一道逻辑题

1、有一个水无限多的是水塘.只有两个水瓶.一个5升一个6升.如何从水塘里用这两个水瓶取出3升水?

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-13

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-13 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-13目录1. The Cognitive Capabilities of Generative AI: A Comparative Analysis with Human Benchmarks2. WALL-E: World Alig…

Postman 如何测试入参是文件类型(File)参数接口

Postman 如何测试 File 类型参数 前提背景测试步骤1、打开 Postman 选择 POST 方法输入调用地址2、参数选择 Body 下的 form-data3、KEY 选择 File 选项&#xff0c;并填写 file 前提背景 springboot 项目&#xff0c;接口的参数是 File 类型&#xff0c;需要通过 Postman 测试…

链表题, 反转链表 , 链表的中间结点 , 删除链表的倒数第 N 个结点 , 移除链表元素

文章目录 206. 反转链表203. 移除链表元素876. 链表的中间结点LCR 021. 删除链表的倒数第 N 个结点 206. 反转链表 题目链接 思路&#xff1a; 将原链表的结点&#xff0c;从头到尾一个个地拿下来头插到一个新链表中&#xff0c;这个新链表起始时为一个空链表。 class Solutio…