C语言指针排序2维数组找众数
实验二:指针和二维数组实验报告
实验题目:
【实验2-1】对N个字符串进行排序
(1)
第一种实现方式
要求从键盘输入N个字符串,将其存储在二维数组中,在主函数中进行排序。
(2)
第二种实现方式
要求定义指针数组指向N个字符串,调用函数sort()进行排序,sort()具有如下原型:
/*
函数返回值:多级指针类型char**,返回指针数组首地址
形式参数:指针p,char *,用于操纵N个字符串
line,int,表示字符串个数
*/
char ** sort(char * p[],int linel)
【实验2-2】找众数
定义函数实现:
(1)输出整数数组中重复出现的数和重复的次数。
(2)找出整数数组中的众数(即出现次数最多的数)
并编写相应的主函数测试之。
实验内容及主要步骤:
【实验2-1】对N个字符串进行排序
1.
#include
#include
#define N 5
void sort(char array[N][20]);
void main()
{
char str[N][20];
int i,j,k,n;
for(i=0;i
{
printf("input string %d:",i+1);
gets(str[i]);
}
sort(str,n);
printf("after sort:");
for(i=0;i
puts(str[i]);
}
void sort(char array[N][20])
{
char temp[20];
int i,j,k;
for(i=0;i
{
k=i;
for(j=i+1;j
if(strcmp(array[k],array[j])>0)
k=j;
if(k!=i)
{
strcpy(temp,array[i]);
strcpy(array[i],array[k]);
strcpy(array[k],temp);
}
}
}
心得体会:用排序法,结合指针和数组的用法,加上字符串的库函数。