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

标签 c character

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

相关文章:

java - 如何使用java识别文件中的特殊字符

unicode - 未知字符的字符代码,例如方形或问号罗布

php - 在某些情况下无法从 PHP 停止 C 守护进程

字符数组打印输出

c - 如何将同一个函数放入两个 gcc 静态库中,使其具有不同的实例?

python - 如何存储来自 Python C 扩展的文本文件

c - C中特殊字 rune 件的读写

unicode - 是否有带有笔划unicode字符的向下双箭头?

c - 如何修复C字符串反函数错误?

c - 如何检测特定页面是否映射到内存中?