大一新生求教C语言问题,求大神帮助小白分析此程序的具体过程!如题(答案是xy,aaaacc)

#include<stdio.h>
#include<string.h>
void fun(char *s[],int n)
{ char *t; int i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strlen(s[i])>strlen(s[j])) {t=s[i];s[i]=s[j];s[j]=t;}
}
main()
{char *ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};
fun(ss,5); printf("%s,%s\n",ss[0],ss[4]);
}

#include<stdio.h>
#include<string.h>
//函数功能:根据字符串的长度进行排序
//输入参数:*s[] 字符串数组, n 数组内字符串个数
//输出参数:无
void  fun(char   *s[],int   n)
{ char  *t;  int  i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strlen(s[i])>strlen(s[j]))  //取字符串1和字符串2的长度比较,如果字符串1长度笔字符串2长
{t=s[i];s[i]=s[j];s[j]=t;}   //交换字符串1和字符串2的位置
}
void main()
{char   *ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};
fun(ss,5); 
printf("%s,%s\n",ss[0],ss[4]); //输出最短的和最长的字符串
 
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-08
c中,首先执行的是main函数,在函数里,定义了一个指针数组,然后调用了fun函数,传入数组和一个常量5;在fun函数里,对传入的数组做冒泡排序;排序完成后,函数结束,main函数开始打印指针数组的两个值,ss[0]和ss[4],按照排序后的内容,分别是xy和aaaacc
请参考课本冒泡排序,指针
第2个回答  2014-03-08
题呢?
第3个回答  2014-03-08
哪有题?