当前位置: 代码迷 >> C语言 >> [求助]C语言的问题
  详细解决方案

[求助]C语言的问题

热度:317   发布时间:2006-09-08 23:48:01.0
[求助]C语言的问题

#include<stdio.h>
int z(char *ch);
void main()
{
char num[50];
int m = 0;
printf("输入字符串 \n");
gets(num);
m = z(num);
printf("%d",m);
}
int z(char *ch)
{
int i = 0,n;
while(*ch == '\0')
{
break;
if(*ch == 'x')
{
i++;
}
n++;

}
return i;
}


帮忙看看为什么输出的结果为0
谢谢了~!~!~

搜索更多相关的解决方案: C语言  

----------------解决方案--------------------------------------------------------
以下是引用zhangpri98在2006-9-8 23:48:01的发言:

#include<stdio.h>
int z(char *ch);
void main()
{
char num[50];
int m = 0;
printf("输入字符串 \n");
gets(num);
m = z(num);
printf("%d",m);
}
int z(char *ch)
{
int i = 0,n;
while(*ch == '\0')
{
break;
if(*ch == 'x')
{
i++;
}
n++;

}
return i;
}


帮忙看看为什么输出的结果为0
谢谢了~!~!~


----------------解决方案--------------------------------------------------------

#include<stdio.h>
#include <string.h>
int z(char *ch);
int main(void)
{
char num[50];
int m = 0;
printf("输入字符串 \n");
gets(num);
m = z(num);
printf("%d",m);

return 0;
}
int z(char *ch)
{
int i = 0;
int n = 0;

for (n = 0; n < strlen(ch); n++)
{
if (*(ch +n) != '\n')
{
if (*(ch+n) == 'x')
i++;
} //for
} //for

return i;
}

这个是对的.


----------------解决方案--------------------------------------------------------

谢谢了`!~!~!~!


----------------解决方案--------------------------------------------------------
以下是引用zhangpri98在2006-9-8 23:48:01的发言:

#include<stdio.h>
int z(char *ch);
void main()
{
char num[50];
int m = 0;
printf("输入字符串 \n");
gets(num);
m = z(num);
printf("%d",m);
}
int z(char *ch)
{
int i = 0,n;
while(*ch == '\0')
{
break;
if(*ch == 'x')
{
i++;
}
n++;

}
return i;
}


帮忙看看为什么输出的结果为0
谢谢了~!~!~


这样改动是不是小一点,呵呵

#include<stdio.h>
int z(char *ch);
void main()
{
char num[50];char *ch;
int m = 0;
printf("输入字符串 \n");
gets(num);
ch=&num[0];
m = z(ch);
printf("%d",m);
}
int z(char *ch)
{
int i=0,n=0;
while(*(ch+n)!='\0')
{

if(*(ch+n)=='x')
{
i++;
}
n++;

}
return i;
}

[此贴子已经被作者于2006-9-9 11:35:51编辑过]


----------------解决方案--------------------------------------------------------
#include"stdio.h"
void main()
{
char str[100],*p;
gets(str);
int k;
k=0;
for(p=str;(*p)!='\0';p++)
{
if(*p=='x'|| *p=='X')
k++;
}
printf("x&&X=:%d\n",k);
}
----------------解决方案--------------------------------------------------------
以下是引用honkerman在2006-9-9 11:37:11的发言:
#include"stdio.h"
void main()
{
char str[100],*p;
gets(str);
int k;
k=0;
for(p=str;(*p)!='\0';p++)
{
if(*p=='x'|| *p=='X')
k++;
}
printf("x&&X=:%d\n",k);
}

k定义的位置有问题,在c中,变量的定义放在{}的最前边,在c++则无限制.


----------------解决方案--------------------------------------------------------
偶用的就是vc++6.0滴丫
----------------解决方案--------------------------------------------------------
没必要改动啊!
有什么优点呢?
----------------解决方案--------------------------------------------------------

我也是用VC6.0


----------------解决方案--------------------------------------------------------
  相关解决方案