【发布时间】:2017-05-07 04:33:51
【问题描述】:
这是代码。它在数组输入中占用 3 个 int。然后将其传递给函数 binary。它将十进制数转换为二进制。
#include <iostream>
using namespace::std;
void binary(int *);
int main() {
int input[3];
cout << "Enter 3 numbers : ";
for(int i = 0; i < 3; i++ ){
cin >> input[i];
}
binary(input);
return 0;
}
void binary(int *num){
int rem = 0;
for(int i = 0 ;i < 3; i++){
if (num[i] < 1){
cout << rem;
return;
}
rem = num[i] % 2;
binary(*num / 2);
cout << rem;
}
}
问题出在最后一行4号
binary(*num / 2);
这里显示错误 => 从 'int' 到 'int*' 的无效转换 [-fpermissive]
帮帮我!
【问题讨论】:
-
错误信息的哪一部分你不明白?表达式
*num / 2是一个整数。该函数需要int *作为参数,而不是int。 -
如果您将 int 传递给接收指针的函数(在您的情况下,这可能是一个包含 3 个整数的数组),您希望您的函数如何工作?
-
不要将循环和递归结合起来。
-
binary(*num / 2);三思而后行。你到底打算在那里做什么? -
binary(*num / 2);binary 需要一个指向 int 的指针,然后您将整数值而不是指针传递给它
标签: c++ arrays function pointers recursion