求C语言一道题答案

来源:百度知道 编辑:UC知道 时间:2024/05/26 20:08:30
#include<stdio.h>
int fun(int w[],int x,int n)
{
int i,p;
p=0;
while(x>w[p])
p++;
for(i=n;i>p;i--)
w[i]=w[i-1];
w[i]=x;
return n+1;
}
void main()
{
int a[]={1,3,4,7,12};
int size=5,i;
size=fun(a,8,size);
printf("\n");
for(i=0;i<size;i++)
printf("%d ",a[i]);
}
答案是1 3 4 7 8 12,请高手详细告诉我答案的由来!谢谢

显示看main函数size=fun(a,8,size);
然后跟进去看fun函数while(x>w[p]) p++; 这一句是得到数组a中不小于8的数,此题是12,for(i=n;i>p;i--) w[i]=w[i-1]; w[i]=x; 就是将a[4]的值赋给a[4],将x的值(8)赋给a[4],所以a中存的数依次是1 3 4 7 8 12
最后返回size为n+1;因为n是5,所以size是6

for(i=0;i<size;i++)
printf("%d ",a[i]);最后是用for循环依次打印出a[0]到a[5]的信息
不知道这样说你能明白吗,不明白再说