#include
#include
using namespace std;
void erjinzhi(int n)
{
if ((n / 2) != 0) {
erjinzhi(n / 2);
cout << n % 2;
}
else
cout << n;
}
int main()
{
cout<<erjinzhi(123);
return 0;
}
求问各位大神,为什么我这段程序不能用,报错原因是“没有与这些操作数匹配的<<运算符”,我应该怎么修改呢?我试图把上面void类型换成int,但是输出结果最后会多出一个0,所以希望有其他方法,跪求解答!!!
应该 是 头文件的问题,你的erjinzhi 函数 也没有 返回值
#include < cstdlib >
#include < iostream >
using namespace std;
void erjinzhi(int n)
{
if ((n / 2) != 0) {
erjinzhi(n / 2);
cout << (n % 2);
}
else
cout << n;
}
int main()
{
erjinzhi(123);
return 0;
}
int main()
{
erjinzhi(123);
return 0;
}
这是因为你调用的erjinzhi()函数体返回类型是void 空类型,void没有返回值,因此在调用cout << 输出运算符的时候回出现问题这里可以使用递归的话,可以直接调用void类型的函数体即可。
#include<iostream>
using namespace std;
void erjinzhi(int n)
{
if ((n / 2) != 0) {
erjinzhi(n / 2);
cout << n % 2;
}
else
cout << n;
}
int main()
{
erjinzhi(123);
return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话: