我用通货膨胀来计算工资随机增加1%到5%的工资。就考试而言,2020年通货膨胀率上升了2%。我的薪水是1000。那么答案应该是1000*1.02=1020。
所以我做了一个简单的代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
srand((unsigned int)time(NULL));
int inc_rate = (rand() % 5) + 1;
float num = (100 + inc_rate) / 100;
printf("%d n", inc_rate);
printf("%f", 100 * (float)num);
return 0;
}
但如果我跑的话,就不能算1.02。
例如结果
2
100.000000
如何通过C 计算除法
运算符"如果两个操作数都是整数,则执行整数除法(小数部分被丢弃(。这意味着表达式
(100 + inc_rate) / 100
如果inc_rate是介于1和5之间的整数,则始终为1。
试试这个:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
srand(time(NULL));
int inc_rate = (rand() % 5) + 1;
float num = (100.0 + inc_rate) / 100.0;
printf("%dn", inc_rate);
printf("%fn", 100.0 * num);
return 0;
}