循环运行一次

时间:2014-10-23 00:33:32

标签: c visual-studio visual-studio-2013 while-loop

我正在尝试运行一个程序,该程序将重复读取用户的一封信,最多输入为12.如果用户输入他们输入的标记值,则循环应该终止。但是,只要在循环中读取第一个字符,它就会终止。

此外,程序将在另一个数组中以相反的顺序放置相同的单词,然后检查它们以查看第一个数组(向前读取)是否与另一个数组(向后读取)相同。如果是,则显示该单词是回文。

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main()
{
int charCount, counter, i, temp, check,check2;
char  letter[12], letter2[12];
charCount = 0;
counter = 10;
check = 0;
i = 1;
check2 = 0;

printf("Enter your sentinel value.:");
scanf_s(" %c", &letter[check2]);


while ((i<13) && (letter[i] != letter[check2]))
{
    printf("Enter individual letters in word (in order).:");
    scanf_s(" %c", &letter[i]);

    charCount++;

    if (letter[i] == letter[check2])
    {
        break;
    }
    i++;

}


printf("Letters entered:%i\n", charCount);


for (i = 0; i < charCount; i++)
{
    letter2[i] = letter[i];
}

for (i = 0; i <= (charCount / 2); i++)
{
    temp = letter2[counter];
    letter2[counter] = letter2[i];
    letter2[i] = temp;
    counter--;
}

for (i = 0; i <= charCount; i++)
{
    if (letter[i] = letter2[i])
    {
        check++;
    }
}

if (check = charCount)
{
    printf("Word is a palindrome.\n");
}

system("PAUSE");
return 0;

}

1 个答案:

答案 0 :(得分:0)

当while循环第一次进入时,字母[1]值将被取消分配吗?我认为你可以从while循环中取出那个条件,因为你在while循环中的if语句中考虑它