给定程序MODIl.C中函数fun的功能是:统计字符串中各元音字母(即:A、E、I、O、U)的个数。注意:字母不分大、小写。 例如:若输入:THIs is a boot,则输出应该是:1、0、2、 2、 0。 请改正程序中的错误,使它能

admin2016-10-29  21

问题 给定程序MODIl.C中函数fun的功能是:统计字符串中各元音字母(即:A、E、I、O、U)的个数。注意:字母不分大、小写。
    例如:若输入:THIs is a boot,则输出应该是:1、0、2、  2、  0。
    请改正程序中的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
void fun  (char  *s,  int num[5])
{  int k,i=5 ;
    for(k=0;k/**********found**********/
    num=0 ;
    for  (;  *s;  s++)
    {    i  =  一1;
/**********found**********/
    switch(s)
  { case ’a’:case ’A’:{i=0;break;}
    case ’e’:case ’E’:{i=1;break;}
    case ’i’:case ’I’:{i=2;break;}
    case ’0’:case ’0’:{2=3;break;}
    case ’u’:case ’U’:{2=4;break;}
    }
    i f(i>=0)
    num++;
    }
}
main()
{  char s1[81];int hum1[5],i ;
  printf("\nPlease enter a string:
"); gets(s1);
  fun(s1,num1);
  for(i=0;i<5;i++)print f("%d
",numl);printf("\n");
}

选项

答案(1)num[k]=0; (2)switch(*s)

解析 (1)第一个标识下的for循环过程是将num数组中的变量初始值设置为0,用来统计每一个元音字母出现的个数,for循环中的循环条件表达式中的变量是k,所以第二个标识下“numfi]=0;”改为“num[k]=0;”。
    (2)第二个标识下的switch.case条件选择的功能应该是对s指针指向的字符串中的每一个字符进行判断,不应该是s的数组名,所以第三个标识下“switch(s)”改为“SWitch(木s)”。
转载请注明原文地址:https://kaotiyun.com/show/JjDp777K
0

最新回复(0)