c语言数组编程题

【问题描述】编写一子函数实现输入两个有序数组,合并成新的有序数组。【输入形式】主函数中循环输入两个有序数组元素:A数组6个元素,B数组4个元素【输出形式】输出合并后有序数... 【问题描述】
编写一子函数实现输入两个有序数组,合并成新的有序数组。
【输入形式】
主函数中循环输入两个有序数组元素:A数组6个元素,B数组4个元素
【输出形式】
输出合并后有序数组
【样例输入】
0 2 4 6 7 9
5 7 8 9
【样例输出】
0 2 4 5 6 7 7 8 9 9
【样例说明】
直接用循环输入两个数组,不用考虑换行。
展开
 我来答
自我编程
2020-05-15 · 科技优质答主
自我编程
采纳数:1481 获赞数:4279

向TA提问 私信TA
展开全部

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

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

下面是代码:

#include <stdio.h>

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;

}

shandian888999
2020-05-15 · TA获得超过288个赞
知道小有建树答主
回答量:392
采纳率:86%
帮助的人:59.4万
展开全部
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]<b[j])
{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语言数组编程,其实简洁很多,懒得想了。。
代码如上,满意请采纳,还有问题请追问。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式