文字列としての単語が入力として提供されるプログラムを作成しようとしていますが、すべての母音を最後に移動して、単語の文字の順序を変更するように単語を再配置する必要があります。元の単語に表示されたのと同じ順序でそれらを
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string word = "application";
char[] letters = word.ToCharArray();
char x = new char { };
for (int j = 0; j < letters.Length; j++)
{
if ((letters[j] == 'a') | (letters[j] == 'e' ) | (letters[j] == 'i' ) | (letters[j] == 'o' ) | (letters[j]
== 'u'))
{
for (int i = 0; i < letters.Length - 1; i++)
{
x = letters[i];
letters[i] = letters[i + 1];
letters[i + 1] = x;
}
}
}
string s = new string(letters);
Console.WriteLine(s);
}
}
}
プログラムの出力は
ationaplic
しかし、プログラムの意図された出力は
pplctnaiaio
コードが意図した出力を生成しないのはなぜですか?
編集された作業コードは
namespace VowelSort
{
class Program
{
static void Main(string[] args)
{
string word = "application";
char[] letters = word.ToCharArray();
char x = new char { };
int count = 0;
for (int j = 0; j < letters.Length - count; j++)
{
if ((letters[j] == 'a') | (letters[j] == 'e') | (letters[j] == 'i') | (letters[j] == 'o') | (letters[j] == 'u') | (letters[j] == 'A') | (letters[j] == 'E') | (letters[j] == 'I') | (letters[j] == 'O') | (letters[j] == 'U'))
{
for (int i = j; i < letters.Length - 1; i++)
{
x = letters[i];
letters[i] = letters[i + 1];
letters[i + 1] = x;
}
count++;
j--;
}
}
string s = new string(letters);
Console.WriteLine(s);
Console.WriteLine(count);
}
}
}