#include
#include
#include
void input(char (*s)[20],int n);
int maxnum(char (*s)[20],int n);
int main()
{
int i,n,max;
char (cs)[20];
//printf("input n=");
scanf("%d",&n); //输入字符串的个数
getchar();
/ 申请n×20的字符二维动态数组 */
input(cs,n);
max = maxnum(cs,n);
puts( cs[max]);
/* * 释放二维动态数组 * */
return 0;
}
void input(char (*s)[20],int n)
{
}
int maxnum(char (*s)[20],int n)
{
}
//input和maxnum求指点
已经写好,仅供参考!谢谢!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void input(char (*s)[20], int n);
int maxnum(char (*s)[20], int n);
int main()
{
int n, max;
char (*cs)[20];
scanf("%d", &n);
getchar();
/* 申请n个最大20字符二维动态数组 */
if ((cs = (char (*)[20])malloc(n * 20)) == NULL)
{
exit(-1);
}
input(cs, n);
max = maxnum(cs, n);
puts(cs[max]);
/* * 释放二维动态数组 * */
free(cs);
return 0;
}
void input(char (*s)[20], int n)
{
#if 0
这紧接着的后面三行被注释了
char (*tmp)[20] = s;
while (n--)
fgets((char *)tmp++, 20, stdin);
#endif
int m = 0;
char tmp[n][20];
while (m < n)
{
fgets(tmp[m], 20, stdin);
memcpy((char *)s, tmp[m], sizeof(tmp[0]));
s++;
m++;
}
}
int maxnum(char (*s)[20], int n)
{
int max = 0;
for (int i = 0; i < n; i++)
{
if (strcmp((char*)(s + i), (char*)(s + max)) > 0 )
max = i;
}
return max;
}
// input和maxnum求指点
给你找了一篇非常好的博客,你可以看看是否有帮助,链接:汇编创建二维数组