HJ0427分隔输出

2023-11-01

要求:第一个数N为字符串的数量,第二个以后为连续输入的字符串。字符串之间用空格隔开。若字符串长度大于等于8,则每八个为一组,之间用空格隔开,切割后余下部分不满八个则用0补位;字符串长度小于8,则后补零,补满八个为止。升序输出。
输入:2 abc 123456789
输出:12345678 90000000 abc00000


思路:
1.将字符串放入N行的二维数组,每个字符串占有一行。
2.获取每一个字符串的长度。
3.然后根据每行的第一个排序。(这个排序似乎理解的不对,是不是应该按字母表顺序排?)
4.通过对列坐标的求余实现每八个一循环,满8(求余结果为0)则补空格,不满8则补零,补到求余结果为0开始。


考试的时候用的一维数组。
还要处理最后一个空格后面的内容。
颇为繁琐。
简直智障。
下次一定。

#include<stdio.h>
#include<string.h>


int N;
int len;
char new[8],store[100][1000] = {0},in[10000],input;
int i=0,j=0,k=0,flag=0;
int length[100];



int max(int a,int b)
{
   return  a>b?a:b;
    
}


int main()
{
    scanf("%d ",&N);
    while(1)//输入数据
    {
        if(input != '\n')
        {
           scanf("%c",&input);
           in[i] = input; 
           i++;
        }
        else
            break;        
    }
    
    for(i=0;i<N;i++)//分组
    {
        for(k =flag;(in[k] != ' ')&&(in[k] != '\n');k++)
        {
            store[i][j] = in[k];
            j++;
            
        }
        j=0;
        k++;//跳过空格
        flag = k;
      
    
    for(i= 0;i<N;i++)//计算每行的长度
    {
        for(j = 0;store[i][j]!=0;j++)
        {
            len++;            
        }       
        length[i] = len; 
        len =0;
    }
    
    
    
    for(i = 0;i < N-1;++i)//排序
    {
        for(j=1;j<N;j++)
        {
            if(store[j-1][0] > store[j][0])
            {
            for(k = 0;k<max(length[j-1],length[j]);k++)
            {
            char asb = store[j-1][k];
                 store[j-1][k] = store[j][k];                 
                 store[j][k] = asb;                 
            }   
                int asb2 = length[j-1];
                    length[j-1] = length[j];
                    length[j] = asb2;
            }
        }
        
        
    }
    
    
      for(i= 0;i<N;i++)//输出
    {
        
        for(j=0;j<length[i];j++)
        {
        new[j%8] = store[i][j];
        if((j%8 == 0)&&(j !=0))
        {
            
            printf(" ");
            
        }
       printf("%c",new[j%8]);
        }
        while(j%8)
        {
            printf("0");
            ++j;
        }
        printf(" ");
        
    }
    
    
    
    
    
    
    
    
    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HJ0427分隔输出 的相关文章

随机推荐

  • HWnd和CWnd的获取函数

    顺便记录一下有关窗口对象指针和窗口句柄相关的函数 Win32 API函数对窗口的操作总是需要一个窗口句柄 hWnd 来指向需要操作的对象 比如 SetWindowPos hWnd 而MFC内 窗口句柄已经包含在对象成员内 需要的是指向窗口对
  • R语言设置当前工作文件夹

    getwd 这个函数用于显示当前工作空间的路径 setwd 用于重新设置当前工作文件夹 list files 列出当前文件夹的子目录 list files path 列出指定路径的子目录 source R 加载R文件 gt getwd 1
  • seam-gen 增加messages_zh_CN.properties

    新建一个Generic Exporter 具体添加的属性如下 File Pattern messages zh CN properties For each entity herbernatetool util toolclass org
  • A simple yet effective baseline for 3d human pose estimation

    A simple yet effective baseline for 3d human pose estimation 主要工作 在以往的人体3D关键点检测的方法中 主要有两种 一种是构造end to end的网络 直接实现输入普通图像
  • 与HTTP(Restful API)对比,gRPC的优势

    gRPC是什么 gRPC是什么可以用官网的一句话来概括 A high performance open source universal RPC framework 所谓RPC remote procedure call 远程过程调用 框架
  • Qt七种信号与槽关联方式小结

    Qt七种信号与槽关联方式 1 F4 F3 ui界面编辑方式 在UI界面按下F4按键 会进入信号与槽的编辑界面 可看到左侧工具栏全部变为灰色 无法进行部件的选择 左键点击界面中已经添加好的部件 然后进行拖拽即可建立信号与槽的关联 按下F3即可
  • Docker安装 Nacos 单机超详细教程(配合宝塔)

    一 事前准备 CentOs系统 安装了宝塔面板 安装了docker 云平台防火墙里开放8848端口 官网地址 宝塔 安全放行8848端口 记得使用firewall cmd list port 查看一下linux有没有开放nacos的8848
  • Electron的安装与使用

    Electron的安装与使用 一 Electron的安装 1 使用脚手架创建 2 electron的使用 3 总结 二 打包并分发应用程序 通过Electron Forge打包 三 如何在VSCode中跑Electron项目 四 使用VSC
  • 【Unity】Post-process后处理之Lens Distortion

    安装组件 Ambient Occlusion 环境光遮蔽 Anti aliasing 抗锯齿 Auto Exposure 自动曝光 Bloom 柔光 Chromatic Aberration 色差 Color Grading 颜色分级 De
  • 用递归法求一个整数数组a中的最大元素C++(超级灵活,且实用)

    前言 最近在学算法 我看书上的代码实现部分太简陋了 不能完全理解 还是自己敲一遍最有效 此代码包含递归算法和调用随机数生成数组方法 我觉得还是蛮简介有效的 把两者结合起来 优化了输入效率 执行效率 完整代码 include
  • 十一、Linux驱动之platform总线设备驱动

    1 基本概念 从Linux2 6开始Linux加入了一套驱动管理和注册机制 platform平台总线驱动模型 platform平台总线是一条虚拟总线 platform device为相应的设备 platform driver为相应的驱动 与
  • JQuery

    JQuery 一 本地存储 特性 1 数据存储在用户浏览器中 2 设置 读取方便 甚至页面刷新不丢失数据 3 容量较大 sessionStorage约5M localStorage约20M 4 只能存储字符串 可将对象JSON string
  • 【STL】SGI空间配置器(一):一级空间配置器

    今天看了STL中的空间配置器 写一篇博客小小的总结一下 STL空间配置器的产生 在实际的软件开发中 当我们使用C 中的malloc new free和delete时 我们不可避免的会因为程序的需求 使用很多的小内存块 这个过程是不一定能够控
  • 网络基础:IP数据包格式

    目录 一 理论 1 IP数据包完整格式 2 IP数据包首部各字段 3 ARP协议 二 实验 1 华为系统中的ARP命令 一 理论 1 IP数据包完整格式 根据TCP IP 协议 使用 IP 协议传输数据的包被称为 IP 数据包 IP Dat
  • Ubuntu安装jenkins

    1 通过命令安装 sudo apt get install jenkins 如果报以下错 E 软件包 jenkins 没有可安装候选 执行以下命令 wget q O https pkg jenkins io debian jenkins i
  • LoadRunner性能测试基本步骤

    前言 本文旨在指导初学者使用LoadRunner进行基础的性能测试 我们在接到一个性能测试任务的时候 需要从以下几点考虑 我们的测试对象是什么 测试要求是什么 测试环境怎么部署的 业务规模如何 哪些业务点是客户最关注的等等 下面将从性能测试
  • Breakpad(跨平台crash工具)

    最近海思平台在项目测试过程中 经常出现coredump的问题 尤其是那些的不经常挂的情况 光看日志定位问题真的很难 同时生成的core文件由于各种动态链接和静态链接 分析起来实在是比较困难 为解决coredump问题 有必要提供一个跨平台的
  • Docker Volume原理及使用

    1 Volume原理 想要了解Docker Volume 首先我们需要知道Docker的文件系统是如何工作的 Docker镜像是由多个文件系统 只读层 叠加而成 当我们启动一个容器的时候 Docker会加载只读镜像层并在其上 译者注 镜像栈
  • U3D 材质转换为URP渲染

    创建URP项目 然后导入已有的package 发现预览图为品红色的 材质显示不正确 如下图所示 在项目的菜单栏选择升级渲染材质为URP渲染即可 最后的效果如下
  • HJ0427分隔输出

    要求 第一个数N为字符串的数量 第二个以后为连续输入的字符串 字符串之间用空格隔开 若字符串长度大于等于8 则每八个为一组 之间用空格隔开 切割后余下部分不满八个则用0补位 字符串长度小于8 则后补零 补满八个为止 升序输出 输入 2 ab