【发布时间】:2017-02-03 08:56:11
【问题描述】:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
system("clear");
char* s = "education";
int l = strlen(s);
int i, j;
for (i = 0; i < l; i++)
{
printf("%c", s[i]);
}
printf("\n");
for (i = 0; i <= l; i++)
{
if (s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' || s[i] == 'u'
|| s[i] == 'A' || s[i] == 'E' || s[i] == 'O' || s[i] == 'I' || s[i] == 'U')
{
for (j = l - 1; j >= 0; j--)
{
if (s[j] == 'a' || s[j] == 'e' || s[j] == 'i' || s[j] == 'o' || s[j] == 'u'
|| s[j] == 'A' || s[j] == 'E' || s[j] == 'O' || s[j] == 'I' || s[j] == 'U')
{
printf("%c", s[j]);
l = j;
break;
}
}
}
else
{
printf("%c", s[i]);
}
}
free(s);
getch();
return 0;
}
程序将打印一个给定的字符串,其元音按顺序颠倒..假设字符串是“hello”..输出将是“holle”。 该程序应该给出一个输出“odicatuen”..但它只显示“odica”..我该如何解决这个问题?我的程序需要什么修正?
【问题讨论】:
-
for(i=0;i<=l;i++)-->for(i=0;i<l;i++) -
与您的问题无关,但您确实应该实现并使用
isvowel函数;您的代码将大大提高可读性。 -
请勿编辑问题以删除答案中指出的错误,这会使答案无效。