12,10,19,8,7,11,5,6
重新整理后输出
5,6,7,8,10,11,12,19?
请问该怎么写?
算法
public string newarray(string strserial)
{
int m = 0, n = 0, r = 0;
int totallen = strserial.Length - 1;
string[] strarry = new string[totallen];
for (int i = 0; i <= totallen; i++)
{
int found = strserial.IndexOf(",", i);
if (found >= 0)
{
r = r + 1;
string tmp = "";
tmp = strserial.Substring(i, found - i);
strarry[r] = tmp;
i = found ;
}
else
{
r = r + 1;
string tmp2 = "";
tmp2 = strserial.Substring(i);
if (tmp2 != "")
strarry[r] = tmp2;
break;
}
} int tmpi=0, tmpj=0; for ( int j = 0; j <= (strarry.Length - 1); j++)
{
if (strarry[j]!=null)
{
tmpi = int.Parse(strarry[j].ToString());
for ( int i = j; i <= strarry.Length - 1; i++)
{
if (strarry[i] != null)
{
tmpj = int.Parse(strarry[i+1].ToString());
if (tmpi > tmpj)
{
strarry[j] = tmpj.ToString();
strarry[i + 1] = tmpi.ToString();
}
}
}
}
}
string strnewid = "";
for (int i = 0;i <= strarry.Length - 1;i++ )
{
if(strarry[i]!=null)
strnewid = strarry[i].ToString() + ",";
}
return strnewid;
}但是这里报错,我实在是解决不了,请大家看看!if (strarry[i] != null)
{
tmpj = int.Parse(strarry[i+1].ToString());
if (tmpi > tmpj)
{
strarry[j] = tmpj.ToString();
strarry[i + 1] = tmpi.ToString();
}
}
出错的地方
重新整理后输出
5,6,7,8,10,11,12,19?
请问该怎么写?
算法
public string newarray(string strserial)
{
int m = 0, n = 0, r = 0;
int totallen = strserial.Length - 1;
string[] strarry = new string[totallen];
for (int i = 0; i <= totallen; i++)
{
int found = strserial.IndexOf(",", i);
if (found >= 0)
{
r = r + 1;
string tmp = "";
tmp = strserial.Substring(i, found - i);
strarry[r] = tmp;
i = found ;
}
else
{
r = r + 1;
string tmp2 = "";
tmp2 = strserial.Substring(i);
if (tmp2 != "")
strarry[r] = tmp2;
break;
}
} int tmpi=0, tmpj=0; for ( int j = 0; j <= (strarry.Length - 1); j++)
{
if (strarry[j]!=null)
{
tmpi = int.Parse(strarry[j].ToString());
for ( int i = j; i <= strarry.Length - 1; i++)
{
if (strarry[i] != null)
{
tmpj = int.Parse(strarry[i+1].ToString());
if (tmpi > tmpj)
{
strarry[j] = tmpj.ToString();
strarry[i + 1] = tmpi.ToString();
}
}
}
}
}
string strnewid = "";
for (int i = 0;i <= strarry.Length - 1;i++ )
{
if(strarry[i]!=null)
strnewid = strarry[i].ToString() + ",";
}
return strnewid;
}但是这里报错,我实在是解决不了,请大家看看!if (strarry[i] != null)
{
tmpj = int.Parse(strarry[i+1].ToString());
if (tmpi > tmpj)
{
strarry[j] = tmpj.ToString();
strarry[i + 1] = tmpi.ToString();
}
}
出错的地方
解决方案 »
- 小妹请教WebBrowser如何判断点击页面按钮。
- 如何把字符串中的所有符号改成空
- C#反射是什么?求最简单的解释
- 麻烦高手帮忙写个C#版本的string.Split(string[] separator)
- 有这样一个动态库函数nt ReadCardNo(char * sCardNo,char * sPsamInfo,int nComPort),如何调用,请大家指点
- 问下转化的问题
- 帮我看看这段代码哪里有毛病
- 简单问题
- 在c#如何将DataGridview中的内容打印出来?
- 初学者的简单问题在线等待!
- 在C#中调用dataset中的table[0]时老是提示找不到table[0]怎么办?
- 请教:C#中使用Spread控件时出现的问题
static void Main()
{
string str = "12,10,19,8,7,11,5,6";
string strSort = newarray(str);
Console.WriteLine(strSort);
}
static string newarray(string strserial)
{
string[] strarry = strserial.Split(new char[] { ',' }); int tmpi = 0, tmpj = 0; for (int i = 0; i < strarry.Length; i++)
{
int p=i;
tmpi = Convert.ToInt32(strarry[i]);
for (int j = i+1; j < strarry.Length; j++)
{
tmpj = Convert.ToInt32(strarry[j]);
if (tmpi > tmpj)
{
p = j;
tmpi = tmpj;
}
}
strarry[p] = strarry[i];
strarry[i] = tmpi.ToString();
}
string strnewid = "";
for (int i = 0; i < strarry.Length; i++)
{
strnewid += strarry[i].ToString() + ",";
}
return strnewid;
}
to liujia_0421() :非常感谢!
你其实没有明白我的真正含意,你仔细研究一下Sort方法,你会发现它非常好,对于基本类型,就不用说了,它还要更强大的功能:它可以比较任何对象,只要我们自己实现一个IComparer接口。这会对复杂对象的排序十分有用。说不定,到时候,你想自己写算法,都可能写不出来的。