| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6882 人关注过本帖
标题:用数组元素来统计数字字符的个数
只看楼主 加入收藏
wxz11191975
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2011-6-20
结帖率:85.29%
收藏
已结贴  问题点数:10 回复次数:9 
用数组元素来统计数字字符的个数
#include <stdio.h>
#include <stdlib.h>

#define N 10

void getnumber(char ch,char *s, int *a)
{int i;
 for(i=0;i<N;i++)  a[N]=0;
 while(ch!='\n')
 {if (ch<='9'&&ch>='0') a[ch-'0']+=1; }
 }
 
void outdata(int *a)
{int i;
 for(i=0;i<N;i++)  printf("%d : %d\n", i,a[i]);
 printf("\n");
}

main()
{char ch,*s;
 int *a;
 printf("input the number series:\n");
 ch=getchar();
 getnumber(ch,s,a);
 outdata(a);
system("PAUSE");   
  return 0;
}
怪异死了,自己看着觉得很对了,可机器还是不给我出结果,只提示input the number series:。等我输入数字以后,它就歇菜了。
怎么办?而这段绕来绕去的东东 while(ch!='\n')
 {if (ch<='9'&&ch>='0') a[ch-'0']+=1; }
还是书后面的答案提示,应该是这东东出了毛病,可毛病在哪儿咧?
搜索更多相关主题的帖子: 统计 include system return number 
2011-07-03 08:20
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
哎,楼主还是重新写一个吧
2011-07-03 08:30
五戒
Rank: 2
来 自:河南
等 级:论坛游民
帖 子:15
专家分:15
注 册:2011-6-21
收藏
得分:0 
void getnumber(char ch,char *s, int *a)
{int i;
for(i=0;i<N;i++)  a[N]=0;   
while(ch!='\n')
{if (ch<='9'&&ch>='0') a[ch-'0']+=1; }  /*这个循环很容易成为死循环,没有出口*/
}
你写的函数怎么看着不对啊,getnumber在while循环那死循环,没有出口。

[ 本帖最后由 五戒 于 2011-7-3 09:17 编辑 ]

     性情彪悍,犹擅谋略。
2011-07-03 08:50
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
程序代码:
int numbers(char *p) {
        int num=0;
        while(*p) {
                if(*p>='0'&&*p<='9') num++;
                p++;
        }
        return num;
}

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-07-03 10:15
wxz11191975
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2011-6-20
收藏
得分:0 
回复 4楼 ansic
题目的要求是这样的:
输入一行数字字符,请用数组元素作为计数器来统计每个数字字符的个数,用下标为0的元素统计字符‘0’的个数,用下标为1的元素统计字符‘1’的个数。。。

要用数组元素来统计。。。
2011-07-03 10:21
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:2 
是这样的吗?
程序代码:
root@~ #cat 73.c
#include <stdio.h>

int main (void) {

        char a[]="1201200120";
        int b[2]={0,0};
        void tj(int *num,char *str);
        tj(b,a);
        printf("Numbers of Zero is %i\nNumbers of One is %i\n",b[0],b[1]);

        return 0;

}
void tj(int *num,char *str) {
        int i=0,j=0;
        while(*str) {
                if(*str=='0')
                        i++;

                if(*str=='1')
                        j++;

                str++;
        }
        *num=i;
        *(num+1)=j;
}

root@~ #./73
Numbers of Zero is 4
Numbers of One is 3
root@~ #

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-07-03 10:34
weiwei555
Rank: 5Rank: 5
来 自:中国
等 级:职业侠客
帖 子:179
专家分:323
注 册:2011-3-4
收藏
得分:8 
楼主,我帮你改了下,你对照着看看……
程序代码:
#include <stdio.h>
#include <stdlib.h>

#define N 10

void getnumber(char *s, int *a)
{   char *p;
    p=s;
    while(*p!='\0')
   {if (*p<='9'&&*p>='0') a[*p-'0']+=1;p++; }

 }

void outdata(int *a)
  {int i;
    for(i=0;i<N;i++)  printf("%d : %d\n", i,a[i]);
    printf("\n");
  }

main()
{   char s[100];
    int a[N],i;
     for(i=0;i<N;i++)  a[i]=0;//统计数字个数的数组初始化放在这里啦
     printf("input the number series:\n");
    gets(s);//我换成这个函数
    getnumber(s,a);
    outdata(a);
    system("PAUSE");
  return 0;
}


2011-07-03 13:41
wxz11191975
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2011-6-20
收藏
得分:0 
谢谢!
2011-07-05 18:27
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
直接用gets  让候传递过去数组和数组的长度  然后再去统计

                                         
===========深入<----------------->浅出============
2011-07-06 09:43
Pejack
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-6-30
收藏
得分:0 
学习!学习!
2011-07-06 10:29
快速回复:用数组元素来统计数字字符的个数
数据加载中...
 
   



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

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