Wangdake 发布的文章

3.31 提车
4.08 验车
4.11 上牌
4.14 贴膜
4.19 蹭轮毂
4.22 刮车漆
5.25 罚款贰佰

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

//1:3:5:7:8:20:28:40
//80080800D5
//213,0,8,8,128,0,0,0

//#define ZXIC

#ifdef ZXIC
#define BAND_WIDTH 8
#else
#define BAND_WIDTH 4
#endif

int str_reverse(char *str)
{   
    int i, j;
    char c;
    
    if (NULL == str || (j = strlen(str)) == 0)
        return -1;
    
    for (i = 0, j--; i < j; i++, j--) {
        c = str[i];
        str[i] = str[j];
        str[j] = c;
    }
    
    return 0;
}

void get_band_value(int band, int *offset, int *value)
{
    int temp;

    *offset = band / BAND_WIDTH;
    temp = band % BAND_WIDTH;
    if (temp == 0) {
        (*offset)--;
#ifdef ZXIC
        temp = BAND_WIDTH;
#else
        temp = 2 * BAND_WIDTH;
#endif
    }
#ifdef ZXIC
    *value = pow(2, temp - 1);
#else
    if (temp == BAND_WIDTH - 1) {
        temp = BAND_WIDTH;
    }
    *value = temp;
#endif
}

int get_frequency_bands(char *band, char *bandBuf)
{
    int bandValue, offset, value;
    char *ptr = NULL, temp[64] = {0};
#ifdef ZXIC
    int i, tempBuf[9] = {0};
#endif

    if (NULL == band || NULL == bandBuf || strlen(band) == 0)
        return -1;

    memcpy(temp, band, strlen(band));
    if ((ptr = strtok(temp, ":")) == NULL) {
        ptr = temp;
    }
    do {
        if ((bandValue = atoi(ptr)) <= 0)
            return -1;
        get_band_value(bandValue, &offset, &value);
#ifdef ZXIC
        tempBuf[offset] += value;
#else
        bandBuf[offset] += value;
        if (bandBuf[offset] > '9') {
            bandBuf[offset] += ('A' - '9' - 1);
        }
#endif
        ptr = strtok(NULL, ":");
    } while (ptr);
#ifdef ZXIC
    offset = 0;
    for (i = 0; i < BAND_WIDTH; i++) {
        offset += sprintf(&bandBuf[offset], "%d,", tempBuf[i]);
    }
    bandBuf[--offset] = '\0';
#else
    bandBuf[++offset] = '\0';
#endif

#ifdef ZXIC
    return 0;
#else
    return str_reverse(bandBuf);
#endif
}

int main(int argc, char *argv[])
{
    char band[32] = "00000000000000000000";

    get_frequency_bands("1:3:5:7:8:20:28:40", band);
    printf("band:%s\n", band);

    return 0;
}

#include <stdio.h>

void print_diamond(int n)
{
    int i, j, k;

    k = 2 * n - 1;
    for (i = 0; i < n; i++) {
        for (j = 1; j <= k; j++) {
            if (j >= n - i && j <= n + i) {
                printf("*");
            } else {
                printf(" ");
            }
        }
        printf("\n");
    }
    for (i = 1; i < n; i++) {
        for (j = 1; j <= k; j++) {
            if (j > i && j <= k - i) {
                printf("*");
            } else {
                printf(" ");
            }
        }
        printf("\n");
    }
}

int main(int argc, char *argv[])
{
    print_diamond(7);

    return 0;
}