C#冒泡排序

staticvoidMain(string[]args){int[]array=newint[6];{for(inti=1;i<=5;i++){Console.Write... static void Main(string[] args)
{
int[] array = new int[6];
{
for (int i = 1; i <= 5; i++)
{

Console.WriteLine("请输入第{0}个同学的分数", i);
array[i] = int.Parse(Console.ReadLine());
}
}
}

#region 冒泡排序
public static void Sort(int[] array)
{
int i, j; // 循环变量
int temp; // 临时变量
for (i = 0; i < array.Length - 1; i++)
{
for (j = 0; j < array.Length - 1 - i; j++)
{
if (array[j] > array[j + 1])
{
// 交换元素
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}

}

}
public static void main(int[] array)
{
for (int i=1;i<=5;i++)
Console.WriteLine(array[i]);

}


谁能告诉我哪里出错了?
展开
 我来答
hailang158
推荐于2016-05-01
知道答主
回答量:18
采纳率:0%
帮助的人:14万
展开全部
这里我只更改你的冒泡排序的方法,如果认为有用可以采纳:
public static void Sort(int[] array)
{
int[] arr=new int[]{45,12,44,4,5};
for(int j=1;j<arr.Length;j++)
{//外循环每次把参与排序的最大数排在最后
for(int i=0;i<arr.Length-j;i++)
{ //内层循环负责对比相邻的两个数,并把最大的排在后面
if(arr[i]>arr[i+1])
{ //如果前 一个数大于后一个数,则交换两个数
int temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}

}
}
//用 一个循环访问数组里的元素并打印
for(int j=0;j<arr.Length;j++)
{
Console.Write(arr[i]+"");
}
}
耿墨析新颖
2019-11-02 · TA获得超过3935个赞
知道大有可为答主
回答量:3081
采纳率:25%
帮助的人:192万
展开全部
int
a[5]={1,4,7,2,5};for(i=0;i<a.Lenhth-1;i++)
//外层循环控制比较次数,数组长度减1{
for(j=0;j<a.Length-1-i;j++)
//这是升序排列,,如果要将序就把
{//这是升序排列,,如果要将序就把a[j]>a[j+1]改为a[j]<a[j+1]
if(a[j]>a[j+1])
//比较相邻的2个数组元素
{ int
temp=a[j]; //用一个中间变量来交换元素在数组中的位置
a[j]=a[j+1]; a[j+1]=temp;
}
}} 第一轮比:1和4,7,2,5比发现没有比1小的数所以没交换 结果:1
4
7
2
5 第二轮比:4和7,2,5比发现2比4小,将4和2位置交换,之后没有发现比2小的数,不交换 结果:1
2
7
4
5 第三轮比:7和4,5比发现4比7小,将7和4位置交换,之后没有发现比4小的数,不交换 结果:1
2
4
7
5 第四轮比:7和5比发现5比7小,将7和5位置交换,排序结束。 结果:1
2
4
5
7
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
亓宛丝06
2021-04-06
知道答主
回答量:7
采纳率:0%
帮助的人:1.8万
展开全部
如下:
class Program
{
public static void Sort(int[] array)
{
int i, j; // 循环变量
int temp; // 临时变量
for (i = 0; i < array.Length - 1; i++)
{
for (j = 0; j < array.Length - 1 - i; j++)
{
if (array[j] > array[j + 1])
{
// 交换元素
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
}

static void Main(string[] args)
{
int[] array = new int[6];
for (int i = 1; i <= array.Length; i++)
{
Console.Write("请输入第{0}个同学的分数:", i);
array[i-1] = int.Parse(Console.ReadLine());
}
Sort(array);
Console.WriteLine("\n" + "成绩排序结果如下:");
for (int i = 0; i < array.Length; i++)
{
Console.Write(array[i] + " ");
}
Console.ReadKey();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
08124120202
2010-05-26 · 超过12用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:0
展开全部
i = 0; i < array.Length - 1; i++
这句改为
i = 0; i < array.Length; i++

j = 0; j < array.Length - 1 - i; j++
这句改为
j = 0; j < array.Length - i; j++

你试试看行不。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sunwei2635
2012-09-18
知道答主
回答量:6
采纳率:0%
帮助的人:9193
展开全部
for (i = 0; i < array.Length - 1; i++)改成for(i=0;i<array.Length;i++)
{
for (j = 0; j < array.Length - 1 - i; j++)改成for (j = 0; j < array.Length - 1; j++)
就Ok 了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式