C语言----------最后一个单词的大小

1.计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)

复制代码
#include <stdio.h>
#include<string.h>
int main()
{
    char arr[5000];
    gets(arr);
    int len = strlen(arr);
    int count = 0;
    for(int i=len-1; arr[i]!=' ' && i>=0; i--)
    {
        count++;
    }
    printf("%d", count);
}

(1)这里主要是遍历数组,而且这个字符数组应该从后向前进行遍历;

(2)srelen需要包含头文件,因为字符串的最后是斜杠0,所以i的初始值是len-1,依次从后向前进行;

(3)判断的条件是字符既不是空格,也不能越界,所以要求i>0,不符合条件就会跳出循环;

给出一个有序的整数数组 A 和有序的整数数组 B ,请将数组 B 合并到数组 A 中,变成一个有序的升序数组

数据范围: 0≤n,m≤1000≤n,m≤100,∣Ai​∣<=100,∣Bi​∣<=100

注意:

1.保证 A 数组有足够的空间存放 B 数组的元素, A 和 B 中初始的元素数目分别为 m 和 n,A的数组空间大小为 m+n

2.不要返回合并的数组,将数组 B 的数据合并到 A 里面就好了,且后台会自动将合并后的数组 A 的内容打印出来,所以也不需要自己打印

  1. A 数组在[0,m-1]的范围也是有序的

    /**
    *

    • @param A int整型一维数组
    • @param ALen int A数组长度
    • @param B int整型一维数组
    • @param BLen int B数组长度
    • @return void
      /
      void merge(int
      A, int ALen, int m, int* B, int BLen, int n) {
      int i=ALen-1,j=BLen-1,k=ALen+BLen-1;
      while(i>=0&&j>=0)
      {
      if(A[i]>=B[j])
      {
      A[k]=A[i];
      k--;
      i--;
      }
      else {
      A[k]=B[j];
      k--;
      j--;
      }
      }
      while(i<0&&j>=0) A[k--]=B[j--];
      while(j<0&&i>=0) A[k--]=A[i--];
      }

(1)对于AB同时进行遍历,而且是逆序遍历;

(2)因为不用新建数组,比较完之后大的直接放到A数组里面,而且是从后向前放置,因为这个时候A数组里面还有元素,ALen+BLen-1就是容纳的所有元素的最大下标;

(3)i<0&&j>=0说明A数组已经遍历完成,所以直接把B数组的元素放进去就可以了;

同理:j<0&&i>=0说明B数组遍历完成,所以A数组直接放进去就可以了;因为AB本来就是有序排列的;

相关推荐
艾为电子8 分钟前
【技术帖】让接口不再短命:艾为 C-Shielding™ Type-C智能水汽防护技术解析
c语言·开发语言
笨笨饿3 小时前
30_泰勒级数
c语言·stm32·嵌入式硬件·线性代数·机器学习·自动化·概率论
OOJO3 小时前
c++---vector介绍
c语言·开发语言·数据结构·c++·算法·vim·visual studio
爱编码的小八嘎5 小时前
C语言完美演绎6-21
c语言
爱编码的小八嘎7 小时前
c.语言完美演绎6-22
c语言
不爱吃炸鸡柳10 小时前
[特殊字符]C/C++内存管理深度解剖:从内存布局到new/delete底层,吃透面试必考核心
c语言·c++·面试
Lzh编程小栈10 小时前
数据结构与算法之队列深度解析:循环队列+C 语言硬核实现 + 面试考点全梳理
c语言·开发语言·汇编·数据结构·后端·算法·面试
凉、介13 小时前
Flash 块设备驱动开发
c语言·驱动开发·笔记·学习·操作系统·嵌入式
itman30113 小时前
C语言字符串必知:末尾有个隐藏的\0,新手易踩坑
c语言·字符串·内存管理·库函数·指针操作
海参崴-14 小时前
C语言与C++语言发展历史详解
java·c语言·c++