我试图用递归类型程序计算表示二进制数的字符数组中的1的数量.但是,似乎我的程序只是计算数组中的字符数.我不知道我是否只是在比较错误与否,但我似乎无法找到问题
#include <stdio.h>
# include <stdlib.h>
#include <string.h>
#define SIZE 20
int determine (char array[SIZE], int count, int track );
int main()
{
int answer = 0;
char input[SIZE]={"1001001"};
int count = 0;
int track = 0;
answer = determine(input, count, track);
printf("The number of 1's is %d ", answer);
system("PAUSE");
return 0;
}
int determine(char array[], int count, int track)
{
if (array[track] != '\0')
{
if ( array[track] == '1');
{
count++;
}
return determine(array, count, track = …Run Code Online (Sandbox Code Playgroud) 所以我编写了这个程序并且它可以工作,但我被告知我需要使用迭代器在我编写的函数中移动.我目前正在使用指针,但我认为它们基本上是相同的东西.如果有区别,迭代器是如何使用的?
更新:所以我理解的是,与指针不同,迭代器将移动到列表中的下一个项目,即使该项目不是下一个顺序存储在内存中?它是否正确?但那它怎么知道在哪里移动?我编写了一个添加和删除节点的二叉树.在每个节点中都有指向两个子节点的指针(或者只指向一个子节点),也指向指向父节点的指针.在函数中,我递归调用我正在使用的函数并传递新指针.我有一种感觉,用迭代器替换我所拥有的东西应该很容易,但我仍然不确定.
更新2:我一直在做更多阅读并尝试一些例子,现在我对如何声明迭代器感到困惑.我遇到的所有事情都像我需要为迭代器创建另一个类.但是,当我尝试所有我得到的是编译器错误列表.任何帮助,将不胜感激.谢谢