我正在尝试运行一个程序,该程序将重复读取用户的一封信,最多输入为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;
}
答案 0 :(得分:0)
当while循环第一次进入时,字母[1]值将被取消分配吗?我认为你可以从while循环中取出那个条件,因为你在while循环中的if语句中考虑它