整型相除截断的技巧

WBOY
풀어 주다: 2016-06-07 15:30:13
원래의
1236명이 탐색했습니다.

欢迎进入C/C++编程社区论坛,与300万技术人员互动交流 >>进入 该题中主要用到了整型相除截断的技巧。例如,计算行数和输出时候判断是否为最后一列。 [cpp] #include stdio.h #include stdlib.h #include string.h int cmp(const void *_a, const void *_b)

欢迎进入C/C++编程社区论坛,与300万技术人员互动交流 >>进入

    该题中主要用到了整型相除截断的技巧。例如,计算行数和输出时候判断是否为最后一列。

    [cpp]

    #include

    #include

    #include

    int cmp(const void *_a, const void *_b) {

    char *a = (char*)_a;

    char *b = (char*)_b;

    return strcmp(a, b);

    }

    // 根据len长度的字符串,不足以空格补齐

    void print(char st[], int len) {

    int tmp = len - strlen(st);

    printf("%s", st);

    while (tmp--)

    printf(" ");

    }

    int main() {

    int n;

    char s[105][65];

    while (scanf("%d", &n) != EOF) {

    int lMax, c, r;

    lMax = c = r = 0;

    for (int i=0; i

    scanf("%s", s[i]);

    int tmp = strlen(s[i]);

    if (tmp > lMax)

    lMax = tmp;

    }

    c = 62 / (lMax+2);                      // 计算列数

    r = (n+c-1) / c;                        // 计算行数

    qsort(s, n, sizeof (s[0]), cmp);

    printf("------------------------------------------------------------\n");

    for (int i=0; i

    for (int j=0; j

    int tmp = j*r + i;

    if (tmp >= n) continue;

    if (tmp >= ((int)((n-1)/r))*r)  // 如果为最后一列

    print(s[tmp], lMax);

    else

    print(s[tmp], lMax+2);

    }

    printf("\n");

    }

    }

    return 0;

    }

整型相除截断的技巧

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿