| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 709 人关注过本帖
标题:0 error,0 warning但是答案是错的,求助。
只看楼主 加入收藏
芭蕉没绿
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2012-2-15
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:13 
0 error,0 warning但是答案是错的,求助。
#include<stdio.h>
int i,j,m,n;
char tongji(char str2[100])
{
    int t,i=0,j=0,m=0,n=0;
    for(t=0;str2[t]!='\0';t++)
    {
        if(str2[t]>=48&&str2[t]<=58)i++;
        else if(str2[t]=32)j++;
        else if((str2[t]>=65&&str2[t]<=90)||(str2[t]>=97&&str2[t]<=122))m++;
        else n++;
    }
}
void main()
{
char str1[100];
gets(str1);
tongji(str1);
printf("%5d%5d%5d%5d\n",i,j,m,n);
}
题目是输入一字符串,然后计算该字符串的数字个数,字母个数,空格数,及其它字符的个数。
搜索更多相关主题的帖子: warning 
2012-02-16 15:45
度某某
Rank: 1
等 级:新手上路
帖 子:7
专家分:5
注 册:2011-12-12
收藏
得分:0 
你定义的tongji函数是字符型的,将tongji函数改为int 型 再在tongji函数体内return i,j,m,n的值在主函数中输出,或者在统计函数中就把求得的结果输出也行啊。你试一下。
2012-02-16 16:47
慕羿
Rank: 4
等 级:业余侠客
帖 子:40
专家分:206
注 册:2012-2-16
收藏
得分:2 
你在tongji函数内又重新定义了一遍i、j、m、n,结果运行时函数更改的都是内部定义的变量,没能更改外部的变量。而main是看不到这些变量的,输出当然也就是错的了。
2012-02-16 17:22
mayuebo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:257
专家分:1282
注 册:2005-9-8
收藏
得分:0 
重新设置一下吧,判断的变量多了,直接用select case 好了.tongji那个函数没有返回值,直接定义成void好了.

成功贵在坚持
2012-02-16 17:32
慕羿
Rank: 4
等 级:业余侠客
帖 子:40
专家分:206
注 册:2012-2-16
收藏
得分:0 
将这一句 int t,i=0,j=0,m=0,n=0;改成如下就好:
 int t;
 i=0;
 j=0;
 m=0;
 n=0;
2012-02-16 17:52
C_printf
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:122
注 册:2010-1-26
收藏
得分:8 
#include<stdio.h>
int i=0,j=0,m=0,n=0;
char tongji(char str2[100])
{
    int t;
    for(t=0;str2[t]!='\0';t++)
    {
        if(str2[t]>=48&&str2[t]<=58)i++;
        else if(str2[t]=32)j++;
        else if((str2[t]>=65&&str2[t]<=90)||(str2[t]>=97&&str2[t]<=122))m++;
        else n++;
    }
}
void main()
{
char str1[100];
gets(str1);
tongji(str1);
printf("%5d%5d%5d%5d\n",i,j,m,n);
}
2012-02-16 18:07
杜撰
Rank: 2
来 自:北京
等 级:论坛游民
帖 子:53
专家分:69
注 册:2011-5-14
收藏
得分:0 
#include<stdio.h>
int digit=0,space=0,character=0,other=0;
void tongji(char str2[100])
{
 int t;
 for(t=0;str2[t]!='\0';t++)
{
if(str2[t]>=48&&str2[t]<=57)digit++;
else if(str2[t]==32)space++;
else if((str2[t]>=65&&str2[t]<=90)||(str2[t]>=97&&str2[t]<=122))character++;
else other++;
}
}
void main()
{
char str1[100];
gets(str1);
tongji(str1);
printf("%5d%5d%5d%5d\n",digit,space,character,other);
}

我的青春我做主,奋斗!
2012-02-16 19:56
杜撰
Rank: 2
来 自:北京
等 级:论坛游民
帖 子:53
专家分:69
注 册:2011-5-14
收藏
得分:0 
回复 6楼 C_printf
第二个if,str2[i]=32这样的错误不好吧

我的青春我做主,奋斗!
2012-02-16 19:58
杜撰
Rank: 2
来 自:北京
等 级:论坛游民
帖 子:53
专家分:69
注 册:2011-5-14
收藏
得分:0 
回复 楼主 芭蕉没绿
str2[i]=32,怎么没人发现吗

我的青春我做主,奋斗!
2012-02-16 20:00
芭蕉没绿
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2012-2-15
收藏
得分:0 
回复 8楼 杜撰
谢谢,搞定了,你看的真仔细。
2012-02-16 20:16
快速回复:0 error,0 warning但是答案是错的,求助。
数据加载中...
 
   



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

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