c语言上机改错:给定程序MOODII.C中函数fun的功能是:统计substr所指字符串在str所指字符串中出现的次数。
#include<stdio.h>fun(char*str,char*substr){inti,j,k,num=0;/************found*********...
#include <stdio.h>
fun (char *str,char *substr)
{ int i,j,k,num=0;
/************found************/
for(i=0;str[i];i++)
for(j=i,k=0;substr[k]==str[j];k++,j++)
/************found************/
If(substr[k+1]==0)
{ num++;
break;
}
return num;
}
main()
{
char str[80],substr[80];
printf("Input a string:") ;
gets(str);
printf("Input a substring:") ;
gets(substr);
printf("%d\n",fun(str,substr));
}
按照答案,做出来还是modi1.obj - 2 error(s), 1 warning(s)。这道题还有哪里是错误的? 展开
fun (char *str,char *substr)
{ int i,j,k,num=0;
/************found************/
for(i=0;str[i];i++)
for(j=i,k=0;substr[k]==str[j];k++,j++)
/************found************/
If(substr[k+1]==0)
{ num++;
break;
}
return num;
}
main()
{
char str[80],substr[80];
printf("Input a string:") ;
gets(str);
printf("Input a substring:") ;
gets(substr);
printf("%d\n",fun(str,substr));
}
按照答案,做出来还是modi1.obj - 2 error(s), 1 warning(s)。这道题还有哪里是错误的? 展开
1个回答
展开全部
#include <stdio.h>
int fun (char *str,char *substr)
{
int i,j,k,num=0;
/************found************/
for(i=0;str[i] != '\0';i++)
{
for(j=i,k=0;substr[k]==str[j];k++,j++)
{
/************found************/
if(substr[k+1]==0)
{
num++;
//printf("num:%d\n",num);
break;
}
}
}
return num;
}
int main()
{
char str[80],substr[80];
printf("Input a string:") ;
gets(str);
//printf("string:%s\n",str) ;
printf("Input a substring:") ;
gets(substr);
//printf("substring:%s\n",substr) ;
printf("%d\n",fun(str,substr));
getchar();
getchar();
getchar();
return 0;
}
一个问题是 fun (char *str,char *substr) 没有定义返回值;一个问题是 main 没有定义返回值。你应该是刚换编译器吧,有的编译器是默认返回值为int,而有的不能。
另:我建议你编程的时候注意代码的规范,不然很容易出错的,希望可以帮到你!
int fun (char *str,char *substr)
{
int i,j,k,num=0;
/************found************/
for(i=0;str[i] != '\0';i++)
{
for(j=i,k=0;substr[k]==str[j];k++,j++)
{
/************found************/
if(substr[k+1]==0)
{
num++;
//printf("num:%d\n",num);
break;
}
}
}
return num;
}
int main()
{
char str[80],substr[80];
printf("Input a string:") ;
gets(str);
//printf("string:%s\n",str) ;
printf("Input a substring:") ;
gets(substr);
//printf("substring:%s\n",substr) ;
printf("%d\n",fun(str,substr));
getchar();
getchar();
getchar();
return 0;
}
一个问题是 fun (char *str,char *substr) 没有定义返回值;一个问题是 main 没有定义返回值。你应该是刚换编译器吧,有的编译器是默认返回值为int,而有的不能。
另:我建议你编程的时候注意代码的规范,不然很容易出错的,希望可以帮到你!
更多追问追答
追问
我定义了,还是有2 error(s).这是怎么回事?
追答
你把error贴出来让我看看,还有,你用的什么编译器啊?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询