#include<stdio.h>
int search(char str[],int m,char c)
{
int i;
for(i=0;i<m;i++)
{ printf("%c",str[i]);
if(str[i]==c)
break;}
if(i<m)return 1;
else
return 0;
}
void main()
{
char str[20],c;
int z,n;
scanf("%s",str);
for(n=0;str[n]!='\0';n++);
z=search(str,n,c);
printf("%d",z);
} 我这个程序哪里有问题,为什么实现不了题目的想法???????????
第1个回答 2012-04-18
就差这个地方 if(str[i]=='c')
这个c要加上单引号才表示一个字符,否则就会变成c的ASCII码
所以如果少了单引号,无论输入什么字符都会返回0
这个c要加上单引号才表示一个字符,否则就会变成c的ASCII码
所以如果少了单引号,无论输入什么字符都会返回0
第2个回答 2012-04-18
你的程序编译会警告吧,你没有对c赋值就使用了,你在调用search之前,应该增加一句:
c:='c';
我现在就看见这个问题。你改了试试看,不要忽视编译的警告,最后的边界问题要注意。本回答被提问者采纳
c:='c';
我现在就看见这个问题。你改了试试看,不要忽视编译的警告,最后的边界问题要注意。本回答被提问者采纳
第3个回答 2012-04-18
if(str[i]==c应该是if(str[i]==‘c’,m那里应该要先定义吧。