gpt4 book ai didi

c - 找出输入字符的两个出现之间的最大空间的程序

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

所以我做了一个程序,但它不能正常工作,我想看看是否有人可以帮助我。也许连想法都不对,我不确定。它应该找到所提供字符的两次出现之间的最大间隔,并打印它,或者如果该字符没有出现至少 2 次,则打印 0。

 #include <stdio.h>
main()

{

int i=0,k=0,max,a[50],j;
char n,c;

printf("Insert the character:\n");

scanf("%c",&n);

while ((c=getchar()) != EOF)
{
if (c==n)
{
c=getchar();
while (c != n)
{
k++;
c=getchar();
}
a[i]=k;
k=0;
i++;
}
}



max=a[0];

for (j=1; j<i; j++)
if (a[j]>max) max=a[j];



if (max>=2) printf("%d\n",max);

else printf("0\n");

}

最佳答案

  1. 初始化maxa[0]
  2. 检查内部 while 循环中的 EOF

    #include <stdio.h>
    int main()
    {
    int i=0,k=0,max,a[50],j;
    char n,c;
    a[0] = 0; // Initialize a[0]
    max = 0; // Initialize max
    printf("Insert the character:\n");
    scanf("%c",&n);
    int end_reached = 0;
    while ((c=getchar()) != EOF)
    {
    if (c==n)
    {
    c=getchar();
    while (c != n)
    {
    if(c == EOF) { // Check for EOF
    end_reached = 1;
    break;
    }
    k++;
    c=getchar();
    }
    if(!end_reached) { // Store k in a only if end was not reached.
    a[i]=k;
    k=0;
    i++;
    }
    }
    }
    max=a[0];
    for (j=1; j<i; j++)
    if (a[j]>max)
    max=a[j];
    if (max>=2)
    printf("%d\n",max);
    else
    printf("0\n");
    }

关于c - 找出输入字符的两个出现之间的最大空间的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29667930/

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