gpt4 book ai didi

c - 频率数字计数

转载 作者:行者123 更新时间:2023-11-30 16:12:20 25 4
gpt4 key购买 nike

我试图找到给定字符串中数字的频率,其中包含数字和字母。当我运行相同的程序时,我得到不同的结果,看起来像随机输出。问题出在哪里?

int main() {              

char num[1001];
int digit[10];
int j,i;
int count;
scanf("%s",num);

for(i=48;i<=57;i++)
{
count = 0;
for(j=0; num[j] != EOF;j++)
{
if(num[j] == i)
{
count++;
}
}
printf("%d ",count);
}

return 0;
}

最佳答案

您在 num 之前的 scanf 行中漏掉了一个 &。正确的代码应该是:

scanf("%s", &num);

当您扫描值时,您需要提供变量的地址。也就是说,您让您的程序知道将该值放在哪里。 &num指向变量num的地址。但是,如果您只编写 scanf("%s",num) 您将提供 num 变量的值,而您根本不关心该值。无论如何,您都会覆盖该值。

<小时/>

在字符串的末尾,计算机放置一个空字符\0,其ASCII值为0,表示这是字符串的结尾。有点像“.”但对于电脑来说。因此,您会进行检查,直到在 for 循环中找到空字符,例如: num[j] != '\0' [Not EOF]

关于c - 频率数字计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58357028/

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