C语言初学者的一个问题!请大家教教我!

yefeichenyan 2002-12-09 12:02:45
#include <stdio.h>
void main(){
float k,x=2.5,a=7.0,y=4.7;
k=x+a%3*(int)(x+y)%2/4;
printf("%f",k);
}

link结果
--------------------Configuration: ddd - Win32 Debug--------------------
Compiling...
ddd.c
C:\Documents and Settings\TongYun&ChenYan\My Documents\c\ddd.c(3) : warning C4305: 'initializing' : truncation from 'const double ' to 'float '
C:\Documents and Settings\TongYun&ChenYan\My Documents\c\ddd.c(4) : error C2296: '%' : illegal, left operand has type 'float '
Error executing cl.exe.

ddd.obj - 1 error(s), 1 warning(s)

请问我错在哪里了?
谢谢!
...全文
29 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yefeichenyan 2002-12-10
  • 打赏
  • 举报
回复
还是不对啊!
请大家帮帮我
sunnystar 2002-12-10
  • 打赏
  • 举报
回复
#include <stdio.h>
void main(){
float k,x=2.5,a=7.0,y=4.7;
k=x+(int)a%3*(int)(x+y)%2/4;
printf("%f",k);
}
请将a%3前加(int)a%3:结果:2。500000
virginsoldier 2002-12-10
  • 打赏
  • 举报
回复
<html>
#include <stdio.h>
void main()
{
int j;
float k,x=2.5,a=7.0,y=4.7;
j=a%3;
k=x+(j*(int)(x+y))%2/4;
printf("%f",k);
}
</html>
yefeichenyan 2002-12-10
  • 打赏
  • 举报
回复
可是为什么我改成了
#include <stdio.h>
void main(){
float k,x=2.5,a=7.0,y=4.7;
k=x+(int)(a%3*(int)(x+y))%2/4;
printf("%f",k);
}
还是不行啊!
谁能教教我!??
wwl_f117 2002-12-10
  • 打赏
  • 举报
回复
#include <stdio.h>
void main()
{
float k,x=2.5,a=7.0,y=4.7;
k=x+(int)a%3*(int)(x+y)%2/4;
printf("%f",k);
}

%只能对整形数据,所以树袋熊的分析是对的。 你再试试。
ming00 2002-12-10
  • 打赏
  • 举报
回复
main()
{
float k,x=2.5,a=7.0,y=4.7;
k=x+(int)((int)a%3*(int)(x+y))%2/4;
printf("%g\n",k);
}

THE ANSWER:2.5
shandong88 2002-12-10
  • 打赏
  • 举报
回复
#include <stdio.h>
int main()
{
int j;
float k,x=2.5,a=7.0,y=4.7;
j=(int)(a)%3;
k=x+(j*(int)(x+y))%2/4;
printf("%f",k);

return 0;
}
%要求操作数为整形
mifeng2 2002-12-10
  • 打赏
  • 举报
回复
k=x+(int)a%3*(int)(x+y)%2/4;
virginsoldier 2002-12-10
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>
int main()
{
int j;
float k,x=2.5,a=7.0,y=4.7;
j=int(a)%3;
k=x+(j*(int)(x+y))%2/4;
printf("%f",k);

system("pause");
return 0;
}
yefeichenyan 2002-12-10
  • 打赏
  • 举报
回复
有人知道吗?
mvmouse 2002-12-09
  • 打赏
  • 举报
回复
a%3*(int)(x+y)的结果是float型的,所以不能做%运算。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧