题目描述
能够进入湖南中医药大学这样的高等院校,我相信你对单质铁与硫酸铜的置换反应并不陌生,我们依稀记得要分成三种情况讨论
1.单质铁过量
2.硫酸铜溶液过量
3.恰好反应完
既然我们现在已经是大学生了,我们应该学会使用成熟的方法来解决问题。
Fe+CuSO4⟹FeSO4+Cu
假设现在有x克单质铁,y克质量分数为z%的硫酸铜溶液,现将单质铁放入装有硫酸铜溶液的烧杯中,待充分反应后,将此烧杯称重(烧杯重50g),你能写出一个程序自动计算称重的结果吗?
可能用到的相对原子质量如下:
符号 相对原子质量
O 16
S 32
Fe 56
Cu 64
输入
单组输入数据
x y z(0<x,y<10000,0<z<100)(0<x,y<10000,0<z<100),保证x和y都为整数
输出
输出一行,代表称重的结果(保留整数)。
样例输入 Copy
56 1635 4.68
样例输出 Copy
1741
#include<stdio.h>
//Fe 56 CuSO4 160 FeSO4 152 Cu 64
void solve(int a,int b,double c){
double z2;//z1表示溶液中硫酸铜的质量,z2表示水的质量
int count;//表示反应后总体的质量
double x,y,z;
//求摩尔质量
x=(double)a/56;
y=b*c*0.01;
z2=b-y;
y=(double)b/160;
if(x>=y){
count=y*(152+64)+(x-y)*56+50;
}else{
count=x*(152+64)+(y-x)*160+50;
}
printf("%d\n",count);
}
int main(){
int a,b;
double c;
scanf("%d%d%d",&a,&b,&c);
solve(a,b,c);
}