我正在为学校做作业,但我无法获得正确的输出。我不确定我的循环是否存在问题,或者使用指针保存值的方法存在问题。当我运行代码时,我最终会得到这样的结果:
Output: There are 369224989 underscores and 0 exclamation points in the sentence.
赋值指定使用原型和getchar()函数来读取输入。我觉得因为第一个值是如此之高,这是我的循环问题,但我已经在这两天工作,并没有看到任何错误(虽然我可以在这一点盯着它)。登记/> 另外,当我尝试编译程序时,我会收到这些警告:
characters.c:28: warning: value computed is not used
characters.c:31: warning: value computed is not used
这让我觉得它可能与主要功能没有正确沟通。
#include<stdio.h>
//this function prototype was required for the assignment
void count(int* num_, int* num_exclamation);
// intended to count the number of _ and ! in a string using pointers
int main()
{
int num_, num_exclamation;
count(&num_, &num_exclamation);
return 0;
}
void count(int* p_num_, int* p_num_exclamation)
{
char ch;
*p_num_ = *p_num_exclamation = 0;
//attempts to scan a string get the first character
printf("Enter a sentence: ");
ch = getchar();
//attempts to loop while incrementing if it is a ! or _
while(ch != '\n')
{
if(ch == '_')
*++p_num_;
if(ch == '!')
*++p_num_exclamation;
ch = getchar();
}
//prints result
printf("Output: There are %d underscores and %d exclamation points
in the sentence.\n", *p_num_, *p_num_exclamation);
}
这是我第二次真正与指针交互,第一次是这个任务的另一半正常工作。我对他们并不是特别熟悉,也没有意识到他们所有的细微差别。任何让我在正确的地方寻找的建议都将不胜感激。