数据类型和运算

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

#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为调整部分,用于循环条件的调整。


 

猜你喜欢

转载自blog.csdn.net/m0_72000264/article/details/127473587