| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 660 人关注过本帖
标题:为什么没有返回数值
只看楼主 加入收藏
hujian_2003
Rank: 1
来 自:武汉
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-3-26
收藏
 问题点数:0 回复次数:6 
为什么没有返回数值
这是我写的一个程序,但不知道为什么没有返回数值,结果都是0,请帮我看看,谢谢
#include "stdio.h"
int z,s,k,q;
tongji(char str[])
{int i;
    for(i=0;str[i]!='\0';i++)
    {
    if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))z++;
    else if(str[i]>='0'&&str[i]<='9')s++;
    else if(str[i]==' ')k++;
    else q++;
    }
}
main()
{char str[100];
 int z=0,s=0,k=0,q=0;
    printf("请输入一个字符串:\n");
    gets(str);
    tongji(str);
    printf("统计的个数分别是:\n");
    printf("字母数是:%d\n数字的个数是:%d\n空格的个数是:%d\n其他字符数是:%d\n",z,s,k,q);
   
}
搜索更多相关主题的帖子: 数值 
2008-04-08 15:12
assess110
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2008-3-13
收藏
得分:0 
把主函数中定义的变量 z s k q 去掉。可能覆盖了全局变量了吧
2008-04-08 15:24
yunsuoyan
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-10-16
收藏
得分:0 
main()
{char str[100];
int z=0,s=0,k=0,q=0;//改为:z=0,s=0,k=0,q=0;
    printf("请输入一个字符串:\n");
2008-04-08 15:29
hujian_2003
Rank: 1
来 自:武汉
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-3-26
收藏
得分:0 

谢谢
这个方法确实不错
但就是不知道为什么要这么改?
2008-04-08 15:40
yunsuoyan
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-10-16
收藏
得分:0 
你在调用tongji(char str[])时,改变的是全局变量int z,s,k,q;
的值,而输出的是main函数中局部变量int z=0,s=0,k=0,q=0;的值,所以输出的永远为零
更改后没有局部变量了,输出的全局变量int z,s,k,q;的值
2008-04-08 15:48
zmhdxy
Rank: 1
等 级:新手上路
帖 子:452
专家分:0
注 册:2007-9-27
收藏
得分:0 
这种写法最好少用 形参和实参最好不要一样

2008-04-08 16:08
meteor57
Rank: 1
来 自:银河系
等 级:新手上路
帖 子:267
专家分:0
注 册:2007-9-29
收藏
得分:0 
[bo]以下是引用 [un]yunsuoyan[/un] 在 2008-4-8 15:48 的发言:[/bo]

你在调用tongji(char str[])时,改变的是全局变量int z,s,k,q;
的值,而输出的是main函数中局部变量int z=0,s=0,k=0,q=0;的值,所以输出的永远为零
更改后没有局部变量了,输出的全局变量int z,s,k,q;的值 ...

5#正解.呵呵~~~
这样写不太好.
2008-04-08 22:18
快速回复:为什么没有返回数值
数据加载中...
 
   



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

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