C++ error C2059: syntax error : ';'语法错误怎么解决?

#include <stdio.h>int main(void){ double q,a,b,c,f,u; printf("性别(男输1,女输2)\n",&q); scanf("%d",&q); printf("父亲身高\n",&a); scanf("%d",&a); printf("母亲身高\n",&b); scanf("%d",&b); printf("是否喜爱运动(是输1,否无需输入):\n",&c); scanf("%d",&c); printf("(是否有良好卫生饮食习惯(是输1,否无需输入):\n",&f); scanf("%d",&f);//********男性身高********// if(q==1&&c==0&&f==0) { u=(a+b)*0.54; printf("男性身高为:%d",u); }else if(q==1&&c==1&&f==0) { u=(a+b)*0.54; u*=1+2%; printf("男性身高为:%d",u); }else if(q==1&&c==0&&f==1) { u=(a+b)*0.54; u*=1+1.5%; printf("男性身高为:%d",u); } else if(q==1&&c==1&&f==1) { u=(a+b)*0.54; u*=(1+2%)+(1+1.5%); printf("男性身高为:%d",u); }else//********女性身高********// if(q==2&&c==0&&f==0) { u=((a*0.923)+b)*0.54; printf("女性身高为:%d",u); }else if(q==1&&c==1&&f==0) { u=((a*0.923)+b)*0.54; u*=1+2%; printf("女性身高为:%d",u); }else if(q==1&&c==0&&f==1) { u=((a*0.923)+b)*0.54; u*=1+1.5%; printf("女性身高为:%d",u); } else if(q==1&&c==1&&f==1) { u=((a*0.923)+b)*0.54; u*=(1+2%)+(1+1.5%); printf("女性身高为:%d",u); } return 0;}

第1个回答  2022-01-01
代码中的1+1.5%改为1+0.015

C语言中%是取余运算符,不是表示百分数
第2个回答  2022-01-02
这里代码问题非常多,要根据C语法写代码,而不是根据日常习惯写代码
a) 1.5%不是C语言表达方法,这是自然语言表达方法,必须写成0.015
b) c==1对于double类型不适用,只能用 1.000001>c && c>0.999999
c)printf("(是否有良好卫生饮食习惯(是输1,否无需输入):\n",&f);,这里的&f参数再干嘛?
d) int main(void),这个函数原型也是错误的,应该是
int main(int argc, char** argv)
如果你的书不是这样的,建议还本书
第3个回答  2021-10-31

代码中的1+1.5%改为1+0.015

C语言中%是取余运算符,不是表示百分数

追问

按照你的方法,没有问题了,但是代码没有计算身高结果

应该怎么做呢

本回答被提问者采纳
第4个回答  2022-01-02
AAA电池,是一种常见的电池,电池呈圆柱形,高43.6毫米,直径10.1毫米。常用于体积较小,耗电量不太高的电子产品如MP3播放器、小型遥控器等。既有一次性的碱性
第5个回答  2022-01-01
printf语句,不需要&f,&a,&b等等这样的参数。