有很多版本,主要是我这个有**max,给出了形参传回地址!!
#include <stdio.h>
#include <string.h>
void fun(char(*a)[81],int num,char **max)
{int i,k=0;
max=a[0];
for(i=0;i<num;i++)
{if(strlen(max)<strlen(a[i]))
*max=a[i];
}
}
main()
{
char ss[10][81],*ps;
int n,i=0;
printf("输入若干个字符串:");
gets(ss[i]);
puts(ss[i]);
while(!strcmp(ss[i],"****")==0)
{
i++;
gets(ss[i]);
puts(ss[i]);
}
n=i;
fun(ss,n,&ps);
printf("\nmax=%s\n",ps);
NONO();
}
NONO()
{
/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,
输出数据,关闭文件。 */
char ss[20][81],*ps;
int n,i=0;
FILE *rf, *wf ;
rf = fopen("C:\\k01\\24010001\\in.dat","r") ;
wf = fopen("C:\\k01\\24010001\\out.dat","w") ;
fgets(ss[i], 81, rf);
while(!strncmp(ss[i],"****",4)==0)
{
i++;
fgets(ss[i], 81, rf);
}
n=i;
fun(ss,n,&ps);
fprintf(wf, "%s",ps);
fclose(rf) ;
fclose(wf) ;
}
我这个没有结果!
只修改 fun函数,,,,修改好i后 没有运行的结果。。
追答你说的运行结果是什么,显示在控制台的黑色窗口里面的吗?你的程序会先要从控制台输入一系列字符串然后直接显示一个结果,然后会读取C:\k01\24010001\in.dat文件并把结果输出到out.dat里面,我运行以后两个结果都有。
请描述一下你运行以后是怎么输入的,现象是什么,in.dat里面内容是什么