日新月异
5
公司 :杭州神话信息技术有限公司
部门 :运营中心设计部
岗位 :UI视觉设计
8
关注
15
粉丝
7030
微博
56
被赞
新浪微博
原创达人
友情链接:
找感兴趣的人
精彩内容
热门应用
关于我们
手机玩微博
请改正程序中的错误,使它能得到正确结果。
[注意] 不要改动main函数,不得增行或删行,也不得更改程序的结构。
[试题源程序]
include<stdio.h>
define N 20
void fun(int a[], int n)
{
int i, j, t, p;
for(j=0; j<n-1; j++){
/***********found***********/
p=j
for(i=j; i<n; i++)
if(a<a)
/***********found***********/
p=j;
t=a;
a=a;
a=t;
}
}
msin()
{
int a =(9, 6, 8, 3, -1), i, m=5;
printf("排序前的数据:”);
for(i=0; i<m; i++)
printf("%d", a);
printf("\n");
fun(a, m);
printf("排序后的数据:");
for(i=0; i<m; i++)
printf("%d", a);
printf("\n");
}
正确答案:(1)错误:p=j 正确:p=; (2)错误:p=j; 正确:p=i;(1)错误:p=j 正确:p=; (2)错误:p=j; 正确:p=i; 解析:题中提到按“从小到大”的顺序排序,这类题目都可以用选择排序法,即从后N个比较过程中,选择一个最小的与第一个元素交换,以此类推,即用第二个元素与后N-1个进行比较,并进行交换。 错误1:此处错误比较明显,p=j后面应加分号。 错误2:根据选择排序法的思路,此处应将i赋给p。