c语言,统计字符串中个元音字母(即a、e、i、o、u)的个数。

题目:统计字符串中个元音字母(即a、e、i、o、u)的个数
答案:
void fun (char *s , int num[5] )
{
int k , i = 5 ;
for (k=0 ; k<i ; k++)
num[k ] = 0 ;
for ( ; *s ; s++)
{
i= -1 ;
switch(*s)
{ ...
}
if ( i>=0)
num[i] ++;
}
}
提问:
1、里面的‘k’、 ‘i’代表什么?怎么理解?
2、
for ( ; *s ; s++)
{
i= -1 ;
switch(*s)
{ ...
}
if ( i>=0)
num[i] ++;
}
这一段又该如何理解?
3、求整段解释、翻译,看不懂啊...

void fun (char *s , int num[5] )
{
int k , i = 5 ; //i = 5 是指元音的个数,也就是num[0]表示a的个数,以此类推
for (k=0 ; k<i ; k++) //k只是个计数
num[k ] = 0 ;
for ( ; *s ; s++) //s首先指向字符串的第一个字符
{
i= -1 ; //
switch(*s) //判断s指向的字符是否为元音
{ ... //这里,如果*s==a , i = 0,以此类推,如果*s不是元音,i = -1;
}
if ( i>=0)
num[i] ++;
}
}追问

i=-1这里是什么意思?

追答

s=-1是默认值,如果不是元音,i=-1,如果是元音就把i赋值为0

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-26
1、k是计数器,for循环把数组num[5]全置为0,分别表示元音a、e、i、o、u的个数。
2、对字符串中字符循环判断,switch里应该是把相应元音用i表示,再根据下标i使数组num[5]加1.本回答被网友采纳
第2个回答  2012-08-21
k当循环变量使用,i是数组长度。
循环条件 字符串*s,
s++指针加1,判断下一个字符;
第3个回答  2012-08-22
...基础啊。
1.k和i是定义的变量。
for (k=0 ; k<i ; k++)
num[k ] = 0 ;

上面代码是初始化num[5]这个数组。这个数组有5个int变量 分别记录元音字母的个数。
2.for(){}这段代码是写 把字符串一个个传进来,如果是元音,则对应的数组中的元素(num[i])加1,i=-1是初始化i。如果不是元音 则i=-1,也就不改变num[]数组的值。
3.整段代码就是为了计算元音字母的个数。记录在数组num[]中, 在switch中对应就可以了 不如a对应num[0]
4.没什么问题请采纳咯本回答被提问者采纳
相似回答