Day 0xA UVa490 Rotating Sentences

题意

  • 将输入的多行字串改变顺序後输出
  • 需要注意的点有:
    1. 输入最多 100 行
    2. 输入的每行最多 100 个字元
    3. 合法字元
      • 换行、空白、标点符号、大小写字母
      • Tabs
    4. 输出顺序
      • 顺时钟转 90°
        abce #,\wa   21
             123 XWb YZQ
        qw-=       3Wx7U(
        
        q a
        w b
        - c
        = e
        
         1#
         2,
         3\
          w
         Xa
         W 
        3b 
        W  
        xY2
        7Z1
        UQ 
        (  
        
  • 隐藏要点:
    1. 字串长度不足要补空白

解法

  • while 回圈重复输入字串并存入字元阵列中直到 EOF;同时纪录最长字串的长度
    char str[101][101] = {0};
    int row = 0;
    int max_length = 0;
    
    while(gets(str[row])){
        if(strlen(str[row]) > max_length){
            max_length = strlen(str[row]);
        }
        row++;
    }
    
  • 双重 for 回圈处理输出顺序;用 if 判断是否长度不足
    • 外层代表输入的字串左到右第几个字元
    • 内层代表输入的字串下到上第几列
    for(i = 0; i < max_length; i++){
        for(j = row - 1; j >= 0; j--){
            if(i >= strlen(str[j])){
                printf(" ");
            }
            else{
                printf("%c", str[j][i]);
            }
        }
        printf("\n");
    }
    
  • C code
    #include<stdio.h>
    #include<string.h>
    
    int main(){
    
        char str[101][101] = {0};
        int row = 0;
        int i, j;
        int max_length = 0;
    
        while(gets(str[row])){
            if(strlen(str[row]) > max_length){
                max_length = strlen(str[row]);
            }
            row++;
        }
    
        for(i = 0; i < max_length; i++){
            for(j = row - 1; j >= 0; j--){
                if(i >= strlen(str[j])){
                    printf(" ");
                }
                else{
                    printf("%c", str[j][i]);
                }
            }
            printf("\n");
        }
    
        return 0;
    }
    

<<:  [Day1] 专案建置与视窗生成

>>:  案例:在AWS上透过SageMaker跟CodePipeline驾驭MLOps的参考架构(下)

Day 06 「不听话就换掉」测试与依赖:测资料 之 用 Mock 工具控制依赖

2021 IT 铁人 Day 06 测试与依赖:测资料 之 用 Mock 工具控制依赖 今天要来聊的...

Day 2

登入 前往官方文件,查得 登入的范例程序码。 https://sinotrade.github.io...

[DAY-17] 热情从何处来

2021 最後一季拉!!! 倒数 3 个月 当兵有破百 每年的此时此刻也进入破百的阶段拉!!! 前...

Day 26 - XSS 与防范输入相关攻击的方式

倒数五天!倒数五天!倒数五天! 出於书本 Chapter 14. Web sites and Ap...

Day02 WebRTC 简介

一场全球大流行的 COVID-19 疫情,以及 H264、H265、VP8、VP9等影音压缩技术加...