C语言常用数学函数及计算

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

int main() {
    double x = 2.0;
    double y = 3.0;

    // 基本运算
    printf("sqrt(%.1f) = %.2f\n", x, sqrt(x));
    printf("pow(%.1f, %.1f) = %.2f\n", x, y, pow(x, y));
    printf("exp(%.1f) = %.2f\n", x, exp(x));
    printf("log(%.1f) = %.2f\n", x, log(x));
    printf("log10(%.1f) = %.2f\n", x, log10(x));

    // 三角函数
    double angle = M_PI / 4; // 45 degrees  圆周率 π
    printf("sin(%.2f) = %.2f\n", angle, sin(angle));
    printf("cos(%.2f) = %.2f\n", angle, cos(angle));
    printf("tan(%.2f) = %.2f\n", angle, tan(angle));

    // 舍入函数
    double z = 5.8;
    printf("ceil(%.1f) = %.1f\n", z, ceil(z));
    printf("floor(%.1f) = %.1f\n", z, floor(z));
    printf("fabs(%.1f) = %.1f\n", z, fabs(z));

    return 0;
}

 

问题: 使用C++编译,已经用#include <cmath>包含了头文件,但是在使用M_PI时依旧报错说未定义
原因: 在某些编译器中,<cmath> 库中的 M_PI 是一个条件宏,需要 _USE_MATH_DEFINES 宏被定义才能使用。
解决办法: 在第一行加上 _USE_MATH_DEFINES

 

posted @ 2025-03-27 10:45  华腾智算  阅读(40)  评论(0)    收藏  举报
https://damo.alibaba.com/ https://tianchi.aliyun.com/course?spm=5176.21206777.J_3941670930.5.87dc17c9BZNvLL