【3.A.S.T】网络安全爱好者's Archiver

黑客学习

hilarylove 发表于 2009-3-22 23:47

一个C语言的问题,各位帮下

请补充一个fun函数,该函数的功能是按‘0’到‘9’统计一个字符串中的奇数数字字符各自出现的次数,结果保存在数组num中,不可以用字符串库函数
[code]
#include <conio.h>
#include <stdio.h>
#define  N 1000
void fun(char  *tt, int  num[])
{
int  i, j;
int  bb[10];
char  *p = tt;
for (i=0; i<10; i++)
{
  num = 0;
  bb = 0;
}
while (*p)
{
  if (*p>='0' && *p<='9')
   bb[*p-'0']++;
  p++;
}
for (i=1, j=0; i<10; i=i+2, j++)
  num[j]=bb;
}
main()
{
char  str[N];
int  num[10], k;
printf("\nPlease enter a char string:");
gets(str);
printf("\n*******The original string******\n");
puts(str);
fun(str, num);
printf("\n*******The number of letter******\n");
for (k=0; k<5; k++)
{
  printf("\n");
  printf("%d= %d  ", 2*k+1, num[k]);
}
printf("\n");
}
[/code]


问下为什么bb[*p-'0']++;改成bb[*p]++;就不可以了。为什么要bb[*p-'0']++;而不是bb[*p]++;啊




猪猪 发表于 2009-3-24 17:30

:time:  不会语言!!!

Ksnort 发表于 2009-3-26 14:31

回复 1楼 hilarylove 的帖子

0 1 2 3 4 5 6 7 8 9而不是
1 2 3 4 5 6 7 8 9 10
好像是这个问题··

saitojie 发表于 2009-3-26 15:12

上面这个程序有错误吧!
问题一:
[code]
……
for (i=0; i<10; i++)
{
  num = 0;
  bb = 0;
}
……
[/code]
这个里面bb里面是数组是首地址,你想给他赋值为0,貌似不行吧!

问题二:
[code]
main()
{
char  str[N];
int  num[10], k;
[/code]
你的main函数到底有没有返回值,如果有请注明你的main函数返回值类型及return回来的是谁,
如果没有请说明是无返回值的函数,在main前加上void!

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.