C语言求解,详细过程 10
3个回答
2016-06-19
展开全部
冒泡排序,改成这样应该好理解一点
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
for(i=0;i<10;i++)
{
for(j=i+1;j<10;j++)
{
p=i;q=a[i];
for(j=i+1;j<10;j++)
{
if(q<a[j])
{
p=j;q=a[j];
}
}
}
if(p!=i)
{
s=a[i];
a[i]=a[p];
a[p]=s;
}
printf("%d",a[i]);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
for(i=0;i<10;i++)
{
for(j=i+1;j<10;j++)
{
p=i;q=a[i];
for(j=i+1;j<10;j++)
{
if(q<a[j])
{
p=j;q=a[j];
}
}
}
if(p!=i)
{
s=a[i];
a[i]=a[p];
a[p]=s;
}
printf("%d",a[i]);
}
展开全部
k=1 执行 default :直到break;就是 c+=k;c++;break;
得到c=2;
k=2 执行case 2:c++;
得到c=3;
k=3 退出循环
所以 k c 为 3 3
得到c=2;
k=2 执行case 2:c++;
得到c=3;
k=3 退出循环
所以 k c 为 3 3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一次循环,k++之后k=2, case2 , 于是c=1. 第二次循环,k++后k=3,没有case3,所以default, 于是c=c+k, c=3。因为k=3,所以循环结束。结论c,k都为3. printf里 %d表示用decimal(十进制)表示输出结果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询