cC语言改错题求解答哈哈

对存储在string数组内的英文句子中所有以a开始并以e结尾的单词做加密处理。加密规则:若单词长度为偶数个字符,则将组成该单词的所有字母循环左移一次;否则循环右移一次。
例如,单词able经循环左移一次后变为blea;单词abide经循环右移一次后变为eabid。
【测试数据与运行结果】
测试数据:she is able to abide her.
屏幕输出:she is blea to eabid her.
【含有错误的源程序】
#include <stdio.h>
#include <ctype.h>
void wordchange(char str[])
{
int i, j, k, m;
char c;
for (i = 0; str[i]; i++)
{
for (j = i, k = i; isalpha(str[k]); k++)
{
if (str[k] == '.')
break;
if (str[j] == 'a' || str[k - 1] == 'e')
{
if ((k - j) % 2 = 0)
{
c = str[j];
for (m = k - 1; m > j; m--)
str[m] = str[m + 1];
str[k - 1] = c;
}
else
{
c = str[k - 1];
for (m = k - 1; m > j; m--)
str[m] = str[m - 1];
str[j] = c;
}
}
}
i = k;
}
}
int main()
{
char string[80];
int x = 0;
while ((string[x++] = getchar()) != '\n');
string[x - 1] = ' ';
wordchange(string[80]);
puts(string);
return 0;
}
【要求】
1 .根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。
2 .改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其他语句,也不能删去整条语句。