该程序应该使用指针计算相似条目的数量,但每当我输入数字时,计数器总是等于零.我出了什么问题?
#include <stdio.h>
#include <stdlib.h>
//using function to count similar enteries in an array...
void count_similar_enteries(int array_func[10],int *number, int *ptr_to_counter);
int main()
{
int number = 0;
int array[10] = {0,1,1,2,3,1,2,67,65,1};
int counter = 0;
printf("enter a number\n");
scanf("%d", &number);
count_similar_enteries(array, &number,&counter);
printf("the number of similar enteries are %d\n", counter);
return 0;
}
void count_similar_enteries(int array_func[10],int *number, int *ptr_to_counter)
{
int i;
for (i = 0; i< 10 ; i++)
{
if(array_func[i] == *number)
{
*ptr_to_counter++;
continue;
}
else
{
continue;
}
}
}
Run Code Online (Sandbox Code Playgroud)
*ptr_to_counter++;在递增指针本身,写(*ptr_to_counter)++;递增值的ptr_to_counter.
请注意,这continue;是多余的.你不必在if-else那里.无论如何,循环将"循环".你可以这样做:
for(i = 0; i< 10 ; i++) {
if(array_func[i] == *number) {
(*ptr_to_counter)++;
}
}
Run Code Online (Sandbox Code Playgroud)
我建议你尽可能多地减少指针的数量,例如,你不必通过指针传递计数器.您可以拥有一个本地int counter;并将其值返回给调用者.