一道C#小程序题,麻烦各位大侠帮忙!
staticvoidMain(string[]args){inti,j,temp;int[]a=newint[5];Console.WriteLine("请输入5个整数:...
static void Main(string[] args)
{
int i, j, temp;
int[] a = new int[5];
Console.WriteLine("请输入5个整数:");
for (i = 0; i < 5; i++)
{
Console.Write("请输入一个整数:");
a[i] = int.Parse(Console.ReadLine());
******************************************************************
for (j = i; j >= 1; j--)
{
if (a[j - 1] > a[j])
{
temp = a[j - 1];
a[j - 1] = a[j];
a[j] = temp;
}
else
break;
*********************************************************************
}
}
Console.Write("\n依次输出数组中的值:");
for (i = 0; i < 5; i++)
{
Console.Write("{0} ", a[i]);
}
Console.WriteLine();
}
我想问下,分隔线中的代码起到一个什么作用?最好详细点! 展开
{
int i, j, temp;
int[] a = new int[5];
Console.WriteLine("请输入5个整数:");
for (i = 0; i < 5; i++)
{
Console.Write("请输入一个整数:");
a[i] = int.Parse(Console.ReadLine());
******************************************************************
for (j = i; j >= 1; j--)
{
if (a[j - 1] > a[j])
{
temp = a[j - 1];
a[j - 1] = a[j];
a[j] = temp;
}
else
break;
*********************************************************************
}
}
Console.Write("\n依次输出数组中的值:");
for (i = 0; i < 5; i++)
{
Console.Write("{0} ", a[i]);
}
Console.WriteLine();
}
我想问下,分隔线中的代码起到一个什么作用?最好详细点! 展开
8个回答
展开全部
if (a[j - 1] > a[j])
{
temp = a[j - 1];
a[j - 1] = a[j];
a[j] = temp;
}
是排序 就是你输入一个数字 就会当前你输入的和 以前的对比
如果前一位大于当前你输入的 则换位
否则跳过
追问
for (j = i; j >= 1; j--)这段代码为什么要这么编写呢?麻烦您了
追答
int[] a 这个数组 从你当前输入数字的索引开始 比较 一直减到 1
不过为神马不到0呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
排序用的,定义一个临时变量temp,然后通过temp 可以将比过大小的数据值互换
比如 a[j-1]=2,a[j]=1,则比较完之后,a[j]=2,a[j-1]=1
比如 a[j-1]=2,a[j]=1,则比较完之后,a[j]=2,a[j-1]=1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个不是传说中的冒泡法吗?用来排数的大小的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这不就是冒泡排序,分隔线中间的代码是排序
追问
for (j = i; j >= 1; j--)这段代码为什么要这么编写呢?麻烦您了,主要含义是什么呢?为什么不是
for (j = 0; j <i-1; j++)呢?
追答
其实你不觉得这两个实现出来的效果都一样么,按照你下面的写法也可以啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询