gpt4 book ai didi

c - 为什么我得到错误的输出,我该如何解决这个问题?

转载 作者:太空宇宙 更新时间:2023-11-04 01:21:00 25 4
gpt4 key购买 nike

我尝试编写一个程序来计算给定字符串中给定字符的出现次数。

程序如下:

#include <stdio.h>
#include <string.h>

int find_c(char s[], char c)
{
int count;
int i;
for(i=0; i < strlen(s); i++)
if(s[i] == c)
count++;
return count;
}

int main()
{
int number;
char s[] = "fighjudredifind";
number = find_c(s, 'd');
printf("%d\n",number);
return 0;
}

我期待以下输出:

3

因为字符'd'在字符串s中出现的次数是3.

每次我尝试运行该程序时,屏幕上都会显示不同的数字。例如,我在运行程序时得到如下输出:

-378387261

再次运行程序时得到了这个输出:

141456579

为什么我得到了错误的输出,我该如何解决这个问题?

提前致谢!

最佳答案

嗯,你的代码很好。唯一的错误是,您没有将计数初始化为 0。如果您没有初始化该变量将保存垃圾值,您将对该值执行操作。结果,在前面的情况下,每次执行程序时,您都获得了所有垃圾值。

代码如下:

#include <stdio.h>
#include <string.h>

int find_c(char s[], char c) {
int count=0;
int i;
for(i=0; i < strlen(s); i++)
if(s[i] == c)
count++;
return count;
}

int main() {
int number;
char s[] = "fighjudredifind";
number = find_c(s, 'd');
printf("%d\n",number);
return 0;
}

关于c - 为什么我得到错误的输出,我该如何解决这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42458652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com