C语言、awk printf 输出补零及输出固定宽度补空格

stevehe 2023年01月07日 152次浏览

C、C++、Awk均通用

一.输出补零

printf("%02d",n);输出数字n,前面补零。
例:printf("%02d:%02d",7,5);>>>07:05

#include<stdio.h>
int main(){
    /*7-102 大笨钟 (10 分)
    一天有24小时,钟却是只在后半天敲1~12下。
    例如在23:00敲钟,就是"当当当当当当当当当当当",而到了23:01就会是"当当当当当当当当当当当当"。在午夜00:00到中午12:00期间(端点时间包括在内),笨钟是不敲的。
    下面就请你写个程序,根据当前时间替大笨钟敲钟。
    输入样例1:
    19:05
    输出样例1:
    DangDangDangDangDangDangDangDang
    输入样例2:
    07:05
    输出样例2:
    Only 07:05.  Too early to Dang.*/
    int h,m;
    scanf("%d:%d",&h,&m);
    if (h<=12)
    printf("Only %02d:%02d.  Too early to Dang.",h,m);
    else{
        h-=12;
        if (m>0){
            h++;
            while(h>0){
                printf("Dang");
                h--;
            }
        }
        else {
             while(h>0){
                printf("Dang");
                h--;
            }
        }
    }
    return 0;
}

二.输出宽度

后补空格:

printf("%-4d",n);输出数字n,宽度4位,位数不足后补空格。
例:printf("%d+%d=%-4d",1,2,3);>>>1+2=3···

前补空格:

printf("%4d",n);输出数字n,宽度4位,位数不足前补空格。
例:printf("%d+%d=%4d",1,2,3);>>>1+2=···3

#include<stdio.h>
int main(){
    /*7-99 打印九九口诀表 (15 分)
    输入格式:
    输入在一行中给出一个正整数N(1≤N≤9)。
    
    输出格式:
    输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐。
    
    输入样例:
    4
    输出样例:
    1*1=1   
    1*2=2   2*2=4   
    1*3=3   2*3=6   3*3=9   
    1*4=4   2*4=8   3*4=12  4*4=16  */
    int a,b,n;
    scanf("%d",&n);
    for(b=1;b<=n;b++){
        for(a=1;a<=b;a++){
            printf("%d*%d=%-4d",a,b,a*b);
        }
        printf("\n");
    }
    return 0;
}