请补充函数fun(),该函数的功能是:按‘0’到‘9’统计一个字符串中的奇数数字字符各自出现的次数,结果保存在数组num中。注意:不能使用字符串库函数。 例如:输入“x=112385713.456+0.909*bc”,结果为:1 =3,3=2,5=2

admin2009-02-15  30

问题 请补充函数fun(),该函数的功能是:按‘0’到‘9’统计一个字符串中的奇数数字字符各自出现的次数,结果保存在数组num中。注意:不能使用字符串库函数。
   例如:输入“x=112385713.456+0.909*bc”,结果为:1 =3,3=2,5=2,7=1,9=2。
   注意:部分源程序给出如下。
   请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
   试题程序:
       #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 (【  】)
          {
              if(*p>=‘0’&&*p<=‘9’)
            【  】;
               p++;
           }
           for(i=1;j=0;i<10;i=i+2,j++)
           【  】;
       }
       main()
       {
           char str[N];
           int num[10],k;
           clrscr();
           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");
           return;
         }

选项

答案*p bb[*p-’0’]++ num[j]=bb[i]

解析 第一空:通过移动指针p,指向字符串tt中的各个字符,当指针p所指的字符为,’\0’时,即指向字符串tt的最后一个字符,while循环结束。第二空:将字符串中的数字字符‘0’到‘9’的个数都保存在数组bb[10]中。*p-‘0’实现将字符‘0’的个数保存在bb[0]中,将字符‘1’的个数保存在bb[1]中,依此类推,直到将字符‘9’的个数保存在bb[9]中。第三空:由于奇数数字字符的个数存于bb[1]、bb[3]、bb[5]、bb[7]、bb[9]中,所以for循环的目的是将这些元素分别赋给num[0]、
转载请注明原文地址:https://jikaoti.com/ti/bSkiFFFM
0

最新回复(0)