填空题 请补充函数proc(),该函数的功能是把数组num中的数按从小到大的顺序排列(数组元素个数及值从主函数中输入)。
例如,输入n=5,num[0]~num[4]依次为5 7 2 8 0,结果为0 2 5 7 8。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#define M 100
void proc(int num[], int n)
{
int i, j, t;
for(i=0; 1; i++)
for(j=0; 2; j++)
if(num[j]>num[j+1])
{
t=num[j];
num[j]=num[j+1];
num[j+1]=t;
}
}
void main()
{
int i=0, n=0;
int num[M];
system("CLS");
printf("/nInput n: /n");
scanf("%d", &n);
printf("/nlnput data: /n");
while(i<n)
{
printf("num[%d]=", i);
scanf("%d", &num[i]);
i++;
}
proc(num, n);
printf("/n***the result***/n");
for(i=0; i<n; i++)
printf("%4d", num[i]);
}
【正确答案】
【答案解析】i<n j<n-1[解析] 由函数proc()可知,该程序选用的是冒泡法来进行排序,变量i为循环次数,因此,第一处填“i<n”;变量j用来判断第j个元素和第j+1个元素顺序是否正确,因此,第二处填“j<n-1”。