hello`world 发表于 2017-8-24 17:42:40

fun()函数错误,请大神们帮忙找找茬~

题目是输入两个字符串,返回长的那一个,如果一样长返回第一个
#include <stdio.h>
/*重点是这个fun()其他地方没有错*/
char *fun(char *s,char *t)
{int i;
for(i=0;(*(s+i)!='\0')||(*(t+i)!='\0');i++);
printf("%d",i);
if((*(t+i)=='\0')&&(*(s+i)=='\0'))return s;
if(*(s+i)=='\0')return t;
if(*(t+i)=='\0')return s;


}
/*结束啦{:10_266:} 就是找不出错,蓝瘦*/
void NONO ( )
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *fp, *wf ;
int i ;
char a, b ;

fp = fopen("bc03.in","r") ;
if(fp == NULL) {
    printf("数据文件bc03.in不存在!") ;
    return ;
}
wf = fopen("bc03.out","w") ;
for(i = 0 ; i < 10 ; i++) {
    fscanf(fp, "%s %s", a, b) ;
    fprintf(wf, "%s\n", fun(a, b)) ;
}
fclose(fp) ;
fclose(wf) ;
}
main()
{   char a,b;
    printf("Input 1th string:");
    gets(a);
    printf("Input 2th string:");
    gets(b);
    printf("%s\n",fun(a,b));
    NONO ();
}

丶忘却的年少o 发表于 2017-8-24 19:24:43

恕我直言,你的代码排版真的扎心。而且少了很多代码段标志{}。我也不知道你是不是要打印这样的。

hello`world 发表于 2017-8-25 14:43:48

丶忘却的年少o 发表于 2017-8-24 19:24
恕我直言,你的代码排版真的扎心。而且少了很多代码段标志{}。我也不知道你是不是要打印这样的。

请问,这样执行的话,等其中一个字符串到了'\0',循环退出,这样怎么执行return语句?{:9_241:}

丶忘却的年少o 发表于 2017-8-25 15:55:32

hello`world 发表于 2017-8-25 14:43
请问,这样执行的话,等其中一个字符串到了'\0',循环退出,这样怎么执行return语句?

当函数运行到最后会自动返回到调用它的函数,不过按照我图片上的来说的确是没什么意义,总是循环判定先检测退出,根本不会到里面的if判断。这个程序是要做什么的?

cjj186 发表于 2017-8-25 16:03:47

char *fun(char *s,char *t)
{
int i;
for(i=0;(*(s+i)!='\0')&&(*(t+i)!='\0');i++);
printf("%d",i);
if((*(t+i)=='\0')&&(*(s+i)=='\0'))return s;
if(*(s+i)=='\0')return t;
if(*(t+i)=='\0')return s;


}

cjj186 发表于 2017-8-25 16:04:28

把for循环中的||改成&&

hello`world 发表于 2017-8-26 17:43:17

cjj186 发表于 2017-8-25 16:04
把for循环中的||改成&&

谢谢兄台!{:9_217:}

hello`world 发表于 2017-8-26 17:44:15

丶忘却的年少o 发表于 2017-8-25 15:55
当函数运行到最后会自动返回到调用它的函数,不过按照我图片上的来说的确是没什么意义,总是循环判定先检 ...

第一行有写,这是二级C语言考试题,拼命做题中

hello`world 发表于 2017-8-26 17:44:33

丶忘却的年少o 发表于 2017-8-25 15:55
当函数运行到最后会自动返回到调用它的函数,不过按照我图片上的来说的确是没什么意义,总是循环判定先检 ...

第一行有写,这是二级C语言考试题

hello`world 发表于 2017-8-26 17:45:01

丶忘却的年少o 发表于 2017-8-25 15:55
当函数运行到最后会自动返回到调用它的函数,不过按照我图片上的来说的确是没什么意义,总是循环判定先检 ...

第一行有写,这是二级考试题
页: [1]
查看完整版本: fun()函数错误,请大神们帮忙找找茬~