| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 660 人关注过本帖, 1 人收藏
标题:为什么这个运行不出呢???????????
只看楼主 加入收藏
wmdhxywd
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-11-16
结帖率:80%
收藏(1)
已结贴  问题点数:20 回复次数:7 
为什么这个运行不出呢???????????
#include<stdio.h>
#include<string.h>
int countchars(char *s1, char ch);
int countchars(char *s1, char ch)
{
        int i,s=0;
        for(i=0;s1[i]!='\0';i++){
            while(ch>='a'||ch<='Z'){
            if(ch=s1[i])
                s=s+1; }}
        return s;

}        
main()
{
    char *s1,ch;
    printf("Input :",*s1);
    printf("Please input :",ch);
    scanf("%c",&ch);
    printf("%d",countchars( s1,ch));
}
搜索更多相关主题的帖子: include 
2011-11-17 00:26
刘定邦
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:687
专家分:1570
注 册:2010-9-21
收藏
得分:4 
int countchars(char *s1, char ch); 这个函数已经写在main()函数前面了,不用再申明了吧,会不会是再申明就多余了.
2011-11-17 00:43
wmdhxywd
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-11-16
收藏
得分:0 
我又修改了一下:main()
{
    char *s1,ch;
    printf("Input :");
    gets(s1);
    printf("Please input :");
    scanf("%c",&ch);
    printf("%d",countchars(s1,ch));
}
但还是不行啊。。
2011-11-17 00:50
sala0127
Rank: 2
等 级:论坛游民
帖 子:56
专家分:52
注 册:2011-11-8
收藏
得分:4 
回复 3楼 wmdhxywd
我是新手,觉得以下两点错误:一,S=S+1后面有两个},到此函数结束,return语句没包含在函数里。二,gets(s1)这句,对一个指针变量赋值以字符串不对吧

[ 本帖最后由 sala0127 于 2011-11-17 09:10 编辑 ]
2011-11-17 09:09
zy_space
Rank: 5Rank: 5
等 级:职业侠客
帖 子:163
专家分:364
注 册:2011-11-14
收藏
得分:4 
我也是一个新手,有两点说明:

1.你的书写格式不正确,正确格式应该是:

        int main(void)
        {
             //语句
             return 0;
         }
2.接着,你编写的countchars函数是一个死循环函数,虽然不知道你函数的用意,但是:
  
         for(i=0;s1[i]!='\0';i++){
            while(ch>='a'||ch<='Z'){
            if(ch=s1[i])
                s=s+1; }}

按照你的代码就,if括号内的表达式是一个赋值语句(=是赋值的意思),把s1[i]的值赋给ch,所以只要s1[i]的值不为0,if括号内表达式的值恒为非零,执行s = s + 1.而while内的判定语句是针对ch的,所以只要任何一个s1[i]满足>='a'或者<='Z'则ch也满足循环条件,while循环就会一直进行下去。我想这才是不出结果的主要原因吧

何必等待?梦在今朝
2011-11-17 09:27
wmdhxywd
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-11-16
收藏
得分:0 
哦哦。。知道错误了,谢谢大家!!
2011-11-17 09:28
guang0725
Rank: 2
等 级:禁止访问
帖 子:70
专家分:70
注 册:2011-9-5
收藏
得分:4 
直接对指针变量赋值字符串不可以
2011-11-17 09:36
shyhaojun
Rank: 1
来 自:广东广州
等 级:新手上路
帖 子:2
专家分:9
注 册:2011-9-5
收藏
得分:4 
格式貌似不正确了。。。
 printf("Input :",*s1);//你的意思是提示输入,你确没有执行读入的代码
 一般字符没这样用的,写得有点像数字类型了。
还有你没有定义数组的长度,你那个循环是终止不了的
2011-11-17 10:38
快速回复:为什么这个运行不出呢???????????
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027326 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved