c语言 小问题
发布网友
发布时间:2023-05-27 15:03
我来回答
共5个回答
热心网友
时间:2024-10-29 18:32
虽然不知道你那个NONO()是干嘛的。。。。完全不知道。
fun()函数返回的是某个数字。你想用%s格式打出来是不可能的。我猜你想输出的是较长的字符串。
fun函数应该这么写。返回较长数组的头指针,而不是尾序号。
char* fun (char *s,char *t)
{
int i=0,j=0;
if(s[i]!=0) i++;
if(t[j]!=0) j++;
if(i>=j)
return t;
else
return s;
}
热心网友
时间:2024-10-29 18:33
#include<stdio.h>
/*原char fun (char *s,char *t)
应改为
int fun (char *s,char *t)
因为返回值是int 型
*/
char fun (char *s,char *t)
{
int i,j;
if(s[i]!="/0") i++;
if(t[j]!="/0") j++;
if(i>=j) return i;
else return j;
}
/*main函数没有返回应定义返回类型为void*/
void main()
{
char a[20],b[20];
/* 函数定义怎么样的?应在main函数外定义
void NONO();
*/
printf("1:");
gets(a);
printf("2:");
gets(b);
/**printf("%s\n",fun(a,b));
应改为
*/
printf("[%d][a,%s][b,%s]\n",fun(a,b) , a , b);
/*
NONO();
*/
return;
}
热心网友
时间:2024-10-29 18:33
亲,你的字符串皆为标志写错了。是'\0',不是'/0',斜杠写反了。追问额 改了还是错啊 显示 ISO C++ forbids comparison between pointer and integer
追答嗯嗯 问题就是双引号改为单引号就可以啦~
还有就是函数的返回值为char型,你return的是int。printf的是%s。
统一一下,返回值改成int,printf改为%d.
热心网友
时间:2024-10-29 18:34
#include<stdio.h>
char fun (char *s,char *t)
{
int i,j;
if(s[i]!='/0') i++;//改为单引号
if(t[j]!='/0') j++;//改为单引号
if(i>=j) return i;
else return j;
}
main()
{
char a[20],b[20];
void NONO();
printf("1:");
gets(a);
printf("2:");
gets(b);
printf("%s\n",fun(a,b));
NONO();
}
追问还是运行不了啊。。
热心网友
时间:2024-10-29 18:35
是反斜杠啊