编程实现输入一个整数,判断其是否能被3、5、7整除,并输出C++

下面的代码自己写的好复杂还有一个错误,求大神帮忙指出,并希望能指导或给出最合适的代码,谢谢~~~~~#include<iostream.h>intx1(inta);int... 下面的代码自己写的好复杂还有一个错误,求大神帮忙指出,并希望能指导或给出最合适的代码,谢谢~~~~~

#include <iostream.h>
int x1(int a);
int y1(int a);
int z1(int a);
int main()
{
int m,x,y,z;
cout<<"请输入一个整数:"<<endl;
cin>>m;
x=x1(m);
y=y1(m);
z=z1(m);
if (x=1 && y=1 &&z=1) cout<<m<<"能同时被3、5、7整除。"<<endl;
if (x=1 && y=1 && z=0) cout<<m<<"能被3、5整除。"<<endl;
if (x=1 && y=0 && z=1) cout<<m<<"能被3、7整除。"<<endl;
if (x=0 && y=1 && z=1) cout<<m<<"能被5、7整除。"<<endl;
if (x=1 && y=0 && z=0) cout<<m<<"只能被3整除。"<<endl;
if (x=0 && y=1 && z=0) cout<<m<<"只能被5整除。"<<endl;
if (x=0 && y=0 && z=1) cout<<m<<"只能被7整除。"<<endl;
return 0;
}
int x1(int a);
{
if (a%3=0)
return 1;
else
return 0;
}
int y1(int a);
{
if (a%5=0)
return 1;
else
return 0;
}
int z1(int a);
{
if (a%7=0)
return 1;
else
return 0;
}
展开
 我来答
hj304huan
2013-09-25 · TA获得超过196个赞
知道小有建树答主
回答量:135
采纳率:0%
帮助的人:103万
展开全部

1、楼主注意=与==的区别:if (a%3=0) 应该是手误吧?

2、函数实现的时候不要带分号哦int x1(int a)。

建议楼主这样写

int x1(int a)
{
     return (0 == a%3);
}

这样简洁易懂,不明白的话欢迎追问~~

 if (x=1 && y=1 &&z=1) cout<<m<<"能同时被3、5、7整除。"<<endl;
if (x=1 && y=1 && z=0) cout<<m<<"能被3、5整除。"<<endl;
if (x=1 && y=0 && z=1) cout<<m<<"能被3、7整除。"<<endl;
if (x=0 && y=1 && z=1) cout<<m<<"能被5、7整除。"<<endl;
if (x=1 && y=0 && z=0) cout<<m<<"只能被3整除。"<<endl;
if (x=0 && y=1 && z=0) cout<<m<<"只能被5整除。"<<endl;
if (x=0 && y=0 && z=1) cout<<m<<"只能被7整除。"<<endl;

这一段也是把=换==哦~~

更多追问追答
追问
还是有一个错误。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
追答
#include <iostream.h>

int x1(int a);
int y1(int a);
int z1(int a);

int main()
{
int m, x, y, z;
cout << "请输入一个整数:" << endl;
cin >> m;

x = x1(m);
y = y1(m);
z = z1(m);
if (x && y && z) 
cout<<m<<"能同时被3、5、7整除。"<<endl;
else if (x && y) 
cout<<m<<"能被3、5整除。"<<endl;
else if (x && z) 
cout<<m<<"能被3、7整除。"<<endl;
else if (y && z) 
cout<<m<<"能被5、7整除。"<<endl;
else if (x) 
cout<<m<<"只能被3整除。"<<endl;
else if (y) 
cout<<m<<"只能被5整除。"<<endl;
else if (z) 
cout<<m<<"只能被7整除。"<<endl;
else
cout<<m<<"不能被3、5、7任一个整除。"<<endl;

return 0;
}

int x1(int a)
{
return (0 == a%3);
}

int y1(int a)
{
return (0 == a%5);
}

int z1(int a)
{
return (0 == a%7);
}

供参考~~

匿名用户
2013-09-25
展开全部
倒数第五行,你的if语句里if(a%7=0)其实你是想判断能不能被7整除吧,可是在编程里,你用一个“=”号表示的是赋值,双等号“==”才是判断,这样你判断的结果是错误的,而且你本身编写的if语句是表判断的,现在却执行了赋值功能,所以这个地方应该是一处错误
更多追问追答
追问
不行。。。
追答
因为只是看到代码,不是实际操作所以不太好弄,你可以看到运行的错误提示,根据提示你可以将错误的位置找到,一般在提示的行数的上下相邻两行之间,然后看看有没有把判断的写成赋值的,或是不改加分号的加了分号,再或者是需要类型的转换,这些一般都是我们自己敲代码时经常犯的错误,希望对你以后有帮助,如果你喜欢编程的话我们可以交个朋友,我是大四的,学编程,自己也比较喜欢编程。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bhtzu
2013-09-25 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4139万
展开全部

错误有两个:

  1. 所有if语句中,单等号改为==双等号(有!的不算)

  2. 后面三个函数定义,参数)后面不能有分号

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
深森LS
2013-09-25 · TA获得超过298个赞
知道小有建树答主
回答量:227
采纳率:0%
帮助的人:152万
展开全部
好久没看代码了,记得用于判断的等于号应该是双等号吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式