如何进行泡泡运动C#
标题可能不是描述性的,但请留下来。 这就是buble排序的外观:如何进行泡泡运动C#,c#,C#,标题可能不是描述性的,但请留下来。 这就是buble排序的外观: string s = Console.ReadLine(); StringBuilder sb = new StringBuilder(s); for (int i = 0; i < sb.Length; i++) { for (int j = 0; j < sb.Length - 1; j++) { if
string s = Console.ReadLine();
StringBuilder sb = new StringBuilder(s);
for (int i = 0; i < sb.Length; i++)
{
for (int j = 0; j < sb.Length - 1; j++)
{
if (sb[j] > sb[j + 1])
{
char tmp = sb[j];
sb[j] = sb[j + 1];
sb[j + 1] = tmp;
}
}
}
s = sb.ToString();
Console.WriteLine(s);
string s=Console.ReadLine();
StringBuilder sb=新的StringBuilder;
for(int i=0;isb[j+1])
{
char tmp=sb[j];
sb[j]=sb[j+1];
sb[j+1]=tmp;
}
}
}
s=sb.ToString();
控制台。写入线(s);
但是我无意中这样写了它,我不知道为什么它能工作,我至少应该得到一个IndexOutfrange异常吗?->
string s = Console.ReadLine();
StringBuilder str = new StringBuilder(s);
for (int i = 0; i < s.Length; i++)
{
for (int j = 0; j < str.Length; j++)
{
if (str[i] < str[j])
{
var tmp = str[j];
str[j] = str[i];
str[i] = tmp;
}
}
}
s = str.ToString();
Console.WriteLine(s);
string s=Console.ReadLine();
StringBuilder str=新的StringBuilder;
对于(int i=0;i
为了澄清这一点,请按字母顺序排列单词。在第一种方法中,您使用了
j
从0
到Length-1
,并在比较字符时不断添加1
在第二种方法中,您使用了j
从0
到Length
,但在比较字符时没有添加1
看到这两种方法都是一样的,你也不会例外。在第二个版本中,你的索引总是在范围内。您仅使用
i
和j
,并且两者都始终小于Length
,这对于StringBuilder
中的字符串及其副本都是相同的。为什么会出现异常?寻求调试帮助的问题(“为什么此代码不工作?”)
的大部分或所有参数都适用于此“为什么此代码工作”问题。所以,我投票决定结束。顺便说一下,这可能是我在这里遇到的第一个“为什么这个代码有效”的问题:)