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
恕我直言,你的代码排版真的扎心。而且少了很多代码段标志{}。我也不知道你是不是要打印这样的。
请问,这样执行的话,等其中一个字符串到了'\0',循环退出,这样怎么执行return语句?{:9_241:} hello`world 发表于 2017-8-25 14:43
请问,这样执行的话,等其中一个字符串到了'\0',循环退出,这样怎么执行return语句?
当函数运行到最后会自动返回到调用它的函数,不过按照我图片上的来说的确是没什么意义,总是循环判定先检测退出,根本不会到里面的if判断。这个程序是要做什么的? 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;
} 把for循环中的||改成&& cjj186 发表于 2017-8-25 16:04
把for循环中的||改成&&
谢谢兄台!{:9_217:} 丶忘却的年少o 发表于 2017-8-25 15:55
当函数运行到最后会自动返回到调用它的函数,不过按照我图片上的来说的确是没什么意义,总是循环判定先检 ...
第一行有写,这是二级C语言考试题,拼命做题中 丶忘却的年少o 发表于 2017-8-25 15:55
当函数运行到最后会自动返回到调用它的函数,不过按照我图片上的来说的确是没什么意义,总是循环判定先检 ...
第一行有写,这是二级C语言考试题 丶忘却的年少o 发表于 2017-8-25 15:55
当函数运行到最后会自动返回到调用它的函数,不过按照我图片上的来说的确是没什么意义,总是循环判定先检 ...
第一行有写,这是二级考试题
页:
[1]