返回列表 发帖

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

请补充一个fun函数,该函数的功能是按‘0’到‘9’统计一个字符串中的奇数数字字符各自出现的次数,结果保存在数组num中,不可以用字符串库函数
  1. #include <conio.h>
  2. #include <stdio.h>
  3. #define  N 1000
  4. void fun(char  *tt, int  num[])
  5. {
  6. int  i, j;
  7. int  bb[10];
  8. char  *p = tt;
  9. for (i=0; i<10; i++)
  10. {
  11.   num = 0;
  12.   bb = 0;
  13. }
  14. while (*p)
  15. {
  16.   if (*p>='0' && *p<='9')
  17.    bb[*p-'0']++;
  18.   p++;
  19. }
  20. for (i=1, j=0; i<10; i=i+2, j++)
  21.   num[j]=bb;
  22. }
  23. main()
  24. {
  25. char  str[N];
  26. int  num[10], k;
  27. printf("\nPlease enter a char string:");
  28. gets(str);
  29. printf("\n*******The original string******\n");
  30. puts(str);
  31. fun(str, num);
  32. printf("\n*******The number of letter******\n");
  33. for (k=0; k<5; k++)
  34. {
  35.   printf("\n");
  36.   printf("%d= %d  ", 2*k+1, num[k]);
  37. }
  38. printf("\n");
  39. }
复制代码



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




花前月下,不如花钱“日”下~~~

:time:  不会语言!!!
10字节写啥

TOP

回复 1楼 hilarylove 的帖子

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

TOP

上面这个程序有错误吧!
问题一:
  1. ……
  2. for (i=0; i<10; i++)
  3. {
  4.   num = 0;
  5.   bb = 0;
  6. }
  7. ……
复制代码

这个里面bb里面是数组是首地址,你想给他赋值为0,貌似不行吧!

问题二:
  1. main()
  2. {
  3. char  str[N];
  4. int  num[10], k;
复制代码

你的main函数到底有没有返回值,如果有请注明你的main函数返回值类型及return回来的是谁,
如果没有请说明是无返回值的函数,在main前加上void!
阿呆主站:CISP中国网
注册信息安全专业人员资质认证(CISP)资料,心得以及备考指南。
阿呆的BLOG:北京SEO
这里时刻记录着阿呆在学习SEO及网络安全过程中的点点滴滴!

TOP

返回列表