数据类型和运算

该博客介绍了一个C语言程序,用于帮助用户决定将资金存入银行还是投资股票。程序根据用户输入的选择,计算存款利息或股票投资的收益。存款部分运用了数学库函数计算复利,股票投资部分则通过for循环模拟每日交易并计算总收益。程序展示了C语言中的条件控制(if...else)和循环(for)语句的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

小麻豆刚刚有了第一桶金,他在考虑是把钱存在银行还是投资股票,所以我们设置了一个程序来帮助他计算哪个方式更加划算。(如下图)

#include <stdio.h>
#include <math.h>
#include <string.h>
int main()
{
    char a[] = "deposit";
    char b[] = "stock investment";
    printf("deposit or stock investment:\n");
    scanf("%s", &a);
    if (strcmp(a,"deposit")==0)
    {
        float m, y, r, i;
        printf("please enter the amount,length of deposit(year),annual rate in the below:\n");
        scanf("%f %f %f", &m, &y, &r);
        i = m * pow(1 + r, y) - m;
        printf("interest = %.2f\n", i);
        return 0;
    }
    else
    {
        int S = 0, S1 = 0, S2 = 0;//总资产,股票资产,现金 
        int m = 0, p = 0, n = 0;//买入股数,入价,交易天数 
        int k = 0, d = 0;//当天交易量,当天股价
        int i = 0;//循环数 
        printf("please enter the number of shares,stock price,trading days in the below:\n");
        scanf("%d%d%d", &m, &p, &n);
        S1 = m * p;//投入成本 
        for (i = 0; i < n; i++)
        {
            printf("please enter the volume of the day,stock price of the day:\n");
            scanf("%d%d", &k, &d);
            m += k;//持有股数
            S1 = m * d;//股票资产
            S2 += -(k * d);//现金 
        }
        S = S1 + S2;
        printf("%d", S);
        return 0;
    }  
    return 0;
}

在这个程序中,传递给printf函数的格式化字符串中的两个转换说明%d和%.2f的含义分别如下所示。

%d =》》显示十进制int型的整数;

%.2f=》》显示小数点后面2位的double型的浮点数。

C语言把数学中常用的一些运算定义为标准库函数,使用这些运算时,只要在程序中把对应的函数名以及所需的参数写在需要的位置,系统就会自动运算出结果。

C语言中常用的标准数学库函数
库函数              功能说明                      示例
abs(x)求整数 x 的绝对值abs(-2)=2
fabs(x)求实数 x 的绝对值fabs(-3.14)=3.14
floor(x)求不大于 x 的最大整数(下舍入)floor(3.14)=3.000000
ceil(x)求不小于 x 的最小整数(上舍入)ceil(3.14)=4.000000
log(x)求 x 的自然对数log(2)=0.693147
exp(x)求 x 的自然指数(ex)exp(2)=7.389056
pow(x,y)计算 xy 的值pow(2,5)=32.000000
rand( )产生 0~RAND_MAX 的随机整数rand( )%900+100 生成三位随机整数
sqrt(x)求 x 的平方根(

sqrt(36)=6.000000

使用上述 C语言标准数学库函数之前,必须在程序的预处理指令部分添加指令包含 math.h 头文件:

#include <math.h>

 在以上的程序中,我们通过“if..else"语句改变了程序流程,if语句半段表达式的值,如果结果不为0,则执行相应的语句。括号内()是对条件进行判断的表达式,成为控制表达式(control expression),以上这个程序对控制表达式strcmp(a,"deposit")==0的判断结果为选择deposit的选项。只有当选择 “deposit”的时候,才会执行{}内的语句;而“else”是“否则”的意思。当表达式不选择“deposit”而是选择“stock investment”的时候,才会执行{}内的语句。

C语言中的分支语句除了if语句之外,还有循环语句while/for/do while,在以上的示例中,由于小麻豆要计算投资天数内每天的当天交易量和当天股价,所以用到了for循环语句。

表达式1

表达式1为初始化部分,用于初始化循环变量的。

表达式2

表达式2为条件判断部分,用于判断循环时候终止。

表达式3

表达式3为调整部分,用于循环条件的调整。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值