C中的句子中有多少个字谜

时间:2017-05-23 22:31:07

标签: c

我被要求编写一个代码,该代码返回最大数量的字谜(通过将另一个字母的字母转换成“安全”这个字来形成的单词是“救援”的字谜)。 这就是我所做的:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char text[1000], angrm1[1000], angrm2[1000];
int i, j, k, count = 1, flag = 0, temp, size = 0, q = 1, counter = 0, max = 0;
char**point;

printf_s("Please enter the sentence, and then press Enter:\n");
gets(text);

strcpy_s(angrm1, 1000, text);
j = 1; i = 0;

for (i = 0; i < strlen(angrm1); i = k + 2) {

        for (k = i; angrm1[k + 1] != ' '&&angrm1[k + 1]!=0; k++) {
            if (angrm1[i] > angrm1[i + 1]) {
                temp = angrm1[k];
                angrm1[k] = angrm1[k + 1];
                angrm1[k + 1] = temp;

            }
        }
  

Blockquote安排单词

     size = strlen(angrm1);
}
for (i = 0; angrm1[i] != 0; i++)
{
    if (angrm1[i] == ' ')
    {
        angrm1[i] = 0;
        count++;
    }
}

point = (char*)malloc(sizeof(char)*count);
for (i = 0; i < (size - 1); i++)
{
    if (angrm1[i] == 0)
    {
        point[q] = &point[i + 1];
        q++;
    }
}
for (i = 0; i < counter; i++)
{
    for (q = i + 1; q < counter; q++)
    {
        if (point[q] == 0 || point[i] == 0)
            continue;
        if (!strcmp(point[q], point[i]))
        {
            counter++;
            point[q] = 0;
        }
    }
    if (max < counter)
        max = counter;
    counter = 0;
}
printf_s("The maximum  (not yet) number of anagram words in this sentence is %d", &max);
}

第一部分有效(在我看来)。 但是当我检查调试器时,它会跳过循环并且我得到了垃圾。 有人可以通过指出问题并解释如何解决问题来帮助我吗?

0 个答案:

没有答案