c语言数组编程题

2024-12-30 08:43:47
推荐回答(2个)
回答1:

思路:按题意,用指针遍历字符串st,使用标识变量flag首次遇到字母置1并计数,遇到空格时flag重置0。

注意:本程序不考虑夹杂非字母的情况,请规范输入。比如“I am a stu**dent”,stu**dent将作为一个单词识别。

下面是代码:

#include

int GetWordNum(char st[])

{

    char *p=st;

    int cnt=0,flag=0;

    while(*p)

    {

        if(flag==0 && ((*p>='a' && *p<='z') || (*p>='A' && *p<='Z')))

            cnt++,flag=1;

        if(flag && *p==' ')

            flag=0;

        p++;

    }

    return cnt;

}

int main()

{

    char str[]="I am a student";

    printf("%s共计单词个数%d\n",str,GetWordNum(str));

    return 0;

}

回答2:

int * en()
{int a[6],b[5],c[11],i,j;
for(int i=0;i<6;i++)
scanf("%d",&a[i]);
a[6]=100000;
for(int i=0;i<4;i++)
scanf("%d",&b[i]);
b[4]=100000;
for( i=0,j=0;i<6;i++)
{for(;j<4;j++)
if(a[i]{c[i+j]=a[i];break;}
else c[i+j]=b[j];
if(j>=4)c[i+j]=a[i];}
while(j<4)c[6+j++]=b[j];
return c;
}C语言数组编程,其实简洁很多,懒得想了。。
代码如上,满意请采纳,还有问题请追问。