gpt4 book ai didi

c - array 要么不打印出计数,要么打印出多次

转载 作者:太空宇宙 更新时间:2023-11-04 04:24:16 24 4
gpt4 key购买 nike

这个小程序基本上应该获取用户输入,读取它是否有任何 a 或 A,并将这些计数存储到 Array[] 中。然后打印出 Array[] 的计数。

#include<stdio.h>

main()
{
int Array[100] = {0};

int i;

char input[100];

printf("Enter a message:...");
gets(input);

for(i=0; input[i]!='\0'; i++)
{
if (input[i]=='a' || input[i]=='A') {Array[i]++;}
}

printf("Total A's:%d\n",Array[i]);
}

来自控制台的示例输入/输出:

 Enter a message:...harry 

Total A's:0

很明显,输入中有一个“a”,但它没有被考虑。现在我尝试将 printf 放在 for 循环中,但它会输出:

Enter a message:...harry 

Total A's:0

Total A's:1

Total A's:0

Total A's:0

Total A's:0

发生的事情显然是它读取消息有多少个字符,并检查每个索引是否有一个,这是应该做的,但它也在每个索引处打印出这个输出。

它应该只 printf 一次。所以将 printf 放入循环中确实有效,但会生成此“错误”

最佳答案

问题是

 printf("Total A's:%d\n",Array[i]);

并没有按照您的想法行事。从逻辑的角度来看,您尝试打印的值无用

不是为每次出现的 'A''a' 递增 count,您只是递增的初始值您在 input 中找到匹配项的特定索引(Array 的)。之后,您将以任何方式打印索引变量的值,该值未被更改(提示:在循环<之后检查 i 的值).

显然,您不需要数组来保存单个变量的计数。只需使用普通变量,将其初始化为 0 并继续递增。

关于c - array 要么不打印出计数,要么打印出多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43315511/

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