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

下面的代码自己写的好复杂还有一个错误,求大神帮忙指出,并希望能指导或给出最合适的代码,谢谢~~~~~

#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;
}

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);
}

供参考~~

追问

谢谢楼~~嘿嘿~~~~

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-25
倒数第五行,你的if语句里if(a%7=0)其实你是想判断能不能被7整除吧,可是在编程里,你用一个“=”号表示的是赋值,双等号“==”才是判断,这样你判断的结果是错误的,而且你本身编写的if语句是表判断的,现在却执行了赋值功能,所以这个地方应该是一处错误追问

不行。。。

追答

因为只是看到代码,不是实际操作所以不太好弄,你可以看到运行的错误提示,根据提示你可以将错误的位置找到,一般在提示的行数的上下相邻两行之间,然后看看有没有把判断的写成赋值的,或是不改加分号的加了分号,再或者是需要类型的转换,这些一般都是我们自己敲代码时经常犯的错误,希望对你以后有帮助,如果你喜欢编程的话我们可以交个朋友,我是大四的,学编程,自己也比较喜欢编程。

追问

嘿嘿,好呀,以后不会做可以问你呢,我是大二的,现在要学C++。。。刚刚上手,还是学了VB后上手了。。。

第2个回答  2013-09-25

错误有两个:

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

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

第3个回答  2013-09-25
好久没看代码了,记得用于判断的等于号应该是双等号吧
相似回答