int TEMP_GROP[]= { 2923 , //-20 2714 , //-10 2447 , // 0 2138 , // 10 1812 , // 20 1494 , // 30 1463 , // 31 1433 , // 32 1403 , // 33 1374 , // 34 1334 , // 35 1305 , // 36 1277 , // 37 1249 , // 38 1221 , // 39 1206 , // 40 960 , // 50 758 , // 60 597 , // 70 470 , // 80 372 , // 90 296 , // 100 265 , // 105 }; 11:55 //计算温度档 if (i <= 5) { temp = (i - 1) * 10.0 - 20.0; } else if (i > 5 && i < 15) { temp = 30.0; } else if (i = 15) { temp = 40.0; } else { temp = (i - 1) * 10.0 - 20.0; } //计算尾数 if (i <= 5) { t_temp = (TEMP_GROP[i - 1] - val) * (10.0 / (TEMP_GROP[i - 1] - TEMP_GROP[i])); } else if (i > 5 && i < 15) { t_temp = (TEMP_GROP[i - 1] - val) * (1.0 / (TEMP_GROP[i - 1] - TEMP_GROP[i])); } else if (i = 15) { t_temp = 0; } else { t_temp = (TEMP_GROP[i - 1] - val) * (10.0 / (TEMP_GROP[i - 1] - TEMP_GROP[i])); } temp = temp + t_temp;
时间: 2024-02-10 17:33:05 浏览: 9
这段代码是一个根据给定的温度值和温度档位计算实际温度的程序。其中,TEMP_GROP是一个数组,按照温度档位从低到高存储了相应的模拟值。程序根据输入的val值和TEMP_GROP数组里的值进行比较,找到对应的温度档位i,并根据不同的温度档位计算出温度的尾数t_temp。最后将温度档位和尾数相加得到实际温度值。具体的计算方式如下:
- 若i<=5,即温度档位在-20℃到20℃之间,根据线性插值公式计算t_temp值。
- 若i>5且i<15,即温度档位为30℃,t_temp值为(TEMP_GROP[i-1]-val)/(TEMP_GROP[i-1]-TEMP_GROP[i])。
- 若i=15,即温度档位为40℃,t_temp值为0。
- 若i>15,即温度档位在20℃到105℃之间,根据线性插值公式计算t_temp值。
相关问题
根据上述温度表,将代码改写为,-20~30之间10度为一档,30~40之间1度为一档,40~105之间10度为一档
根据上述温度表,将代码改写为:
```c++
const int TEMP_GROP[] = {-20, -10, 0, 10, 20, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 60, 70, 80, 90, 100, 105};
//计算温度档和尾数
double temp = 0.0;
double t_temp = 0.0;
int i = 0;
double diff = 0.0;
double temp_base = 0.0;
//计算温度档
if (val <= -20) {
temp_base = -30.0;
} else if (val <= 30) {
temp_base = (val / 10) * 10;
} else if (val < 40) {
temp_base = 30.0;
} else if (val <= 105) {
temp_base = (val / 10) * 10;
} else {
temp_base = 110.0;
}
//计算尾数
if (temp_base == -30.0) {
diff = (TEMP_GROP[0] - TEMP_GROP[1]);
t_temp = (TEMP_GROP[0] - val) * (10.0 / diff);
} else if (temp_base == 30.0) {
diff = (TEMP_GROP[5] - TEMP_GROP[6]);
t_temp = (TEMP_GROP[5] - val) * (1.0 / diff);
} else if (temp_base == 110.0) {
t_temp = 0;
} else {
for (i = 0; i < 30; i++) {
if (val >= TEMP_GROP[i]) {
break;
}
}
diff = (TEMP_GROP[i - 1] - TEMP_GROP[i]);
t_temp = (val - TEMP_GROP[i]) * (10.0 / diff);
}
temp = temp_base + t_temp;
```
这样,根据新的温度表,程序能够正确计算出温度档位和尾数,得到实际温度值。
SELECT A.A0101 AS 姓名, A.A0190 AS 人员编号,A.A0177 AS 身份证号,A.A0191 AS 在职或离职,A.A1017 AS 离职时间,C.GZ_YM AS 缴费年月, --,缴费状态, A.BXJS AS 缴费基数, C.C21163 AS 养老保险单位缴纳,C.C2144 AS 养老保险个人缴纳, SUM(C.C21163+C.C2144) AS 养老合计, C.C21165 AS 失业保险单位缴纳, C.C2153 AS 失业保险个人缴纳, SUM(C.C21165+ C.C2153) AS 失业合计, C. C21164 AS 医疗保险单位缴纳,C.C2147 AS 医疗保险个人缴纳, SUM( C.C21164+C.C2147) AS 医疗合计, C.C21166 AS 工伤保险单位缴纳 SUM(C.C21163+C.C21165+ C. C21164+ C.C21166) AS 单位缴纳总合计, SUM(C.C2144+C.C2153+C.C2147) AS 个人缴纳总合计, SUM(C.C21163+C.C21165+ C. C21164+ C.C21166+C.C2144+C.C2153+C.C2147) AS 总合计; from C21 C LEFT JOIN view_a01 A ON C.A0188=A.A0188 加GROPBY
在你的查询中添加了 GROUP BY 子句,这样可以按照指定的列进行分组聚合。以下是修改后的查询:
```sql
SELECT
A.A0101 AS 姓名,
A.A0190 AS 人员编号,
A.A0177 AS 身份证号,
A.A0191 AS 在职或离职,
A.A1017 AS 离职时间,
C.GZ_YM AS 缴费年月,
--,缴费状态,
A.BXJS AS 缴费基数,
C.C21163 AS 养老保险单位缴纳,
C.C2144 AS 养老保险个人缴纳,
SUM(C.C21163 + C.C2144) AS 养老合计,
C.C21165 AS 失业保险单位缴纳,
C.C2153 AS 失业保险个人缴纳,
SUM(C.C21165 + C.C2153) AS 失业合计,
C.C21164 AS 医疗保险单位缴纳,
C.C2147 AS 医疗保险个人缴纳,
SUM(C.C21164 + C.C2147) AS 医疗合计,
C.C21166 AS 工伤保险单位缴纳,
SUM(C.C21163 + C.C21165 + C.C21164 + C.C21166) AS 单位缴纳总合计,
SUM(C.C2144 + C.C2153 + C.C2147) AS 个人缴纳总合计,
SUM(C.C21163 + C.C21165 + C.C21164 + C.C21166 + C.C2144 + C.C2153 + C.C2147) AS 总合计
FROM
C21 C
LEFT JOIN view_a01 A ON C.A0188 = A.A0188
GROUP BY
A.A0101,
A.A0190,
A.A0177,
A.A0191,
A.A1017,
C.GZ_YM,
A.BXJS,
C.C21163,
C.C2144,
C.C21165,
C.C2153,
C.C21164,
C.C2147,
C.C21166;
```
在这个修改后的查询中,我们使用 GROUP BY 子句对指定的列进行分组,以便在聚合函数中计算每个分组的总和。你可以根据实际需求调整和适应 GROUP BY 子句中的列。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![text/plain](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)