目前共有4篇帖子。 內容轉換:不轉換▼
 
點擊 回復
318 3
【试题】打印十字图
一派護法 十九級
1樓 發表于:2016-3-15 16:03
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *arr;
int len, n;

void draw_h(int x, int y, int hlen)
{
    int p = y * len + x;
    while (hlen--)
        arr[p++] = '$';
}

void draw_v(int x, int y, int hlen)
{
    int p = y * len + x;
    while (hlen--)
    {
        arr[p] = '$';
        p += len;
    }
}

void draw(int layer)
{
    int xl = layer * 2;
    int xr = len - 1 - xl;
    int yt = (layer - 1) * 2;
    int yb = len - 1 - (layer - 1) * 2;
    int border = 5 + (n - layer) * 4;
    
    // 图案第一行(以及倒数第一行)
    draw_h(xl, yt, border);
    draw_h(xl, yb, border);
    
    // 图案第二行 (以及倒数第二行)
    draw_h(xl, yt + 1, 1);
    draw_h(xr, yt + 1, 1);
    draw_h(xl, yb - 1, 1);
    draw_h(xr, yb - 1, 1);
    
    // 图案第三行(以及倒数第三行)
    draw_h(xl - 2, yt + 2, 3);
    draw_h(xr, yt + 2, 3);
    draw_h(xl - 2, yb - 2, 3);
    draw_h(xr, yb - 2, 3);
    
    // 两边的竖线
    draw_v(xl - 2, yt + 2, border);
    draw_v(xr + 2, yt + 2, border);
}

int main(void)
{
    int x, y, size;
    char *pArr;
    scanf("%d", &n);
    len = 5 + 4 * n;
    
    size = len * len * sizeof(char);
    pArr = arr = (char *)malloc(size);
    
    // 画每一层图案(不是每一行)
    memset(arr, '.', size);
    for (x = 1; x <= n; x++)
        draw(x);
        
    // 画中心十字
    draw_v(2 * n + 2, len / 2 - 2, 5);
    draw_h(2 * n, len / 2, 5);
    
    for (y = 0; y < len; y++)
    {
        for (x = 0; x < len; x++)
            putchar(*pArr++);
        putchar('\n');
    }
    free(arr);
    return 0;
}
一派護法 十九級
2樓 發表于:2016-3-15 16:03
评测结果  正确
得分  100 

一个图案一个图案画就行了,不要一行一行画。
一派護法 十九級
3樓 發表于:2016-3-15 16:04
10
..$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$..
..$.......................................$..
$$$.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.$$$
$...$...................................$...$
$.$$$.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.$$$.$
$.$...$...............................$...$.$
$.$.$$$.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.$$$.$.$
$.$.$...$...........................$...$.$.$
$.$.$.$$$.$$$$$$$$$$$$$$$$$$$$$$$$$.$$$.$.$.$
$.$.$.$...$.......................$...$.$.$.$
$.$.$.$.$$$.$$$$$$$$$$$$$$$$$$$$$.$$$.$.$.$.$
$.$.$.$.$...$...................$...$.$.$.$.$
$.$.$.$.$.$$$.$$$$$$$$$$$$$$$$$.$$$.$.$.$.$.$
$.$.$.$.$.$...$...............$...$.$.$.$.$.$
$.$.$.$.$.$.$$$.$$$$$$$$$$$$$.$$$.$.$.$.$.$.$
$.$.$.$.$.$.$...$...........$...$.$.$.$.$.$.$
$.$.$.$.$.$.$.$$$.$$$$$$$$$.$$$.$.$.$.$.$.$.$
$.$.$.$.$.$.$.$...$.......$...$.$.$.$.$.$.$.$
$.$.$.$.$.$.$.$.$$$.$$$$$.$$$.$.$.$.$.$.$.$.$
$.$.$.$.$.$.$.$.$...$...$...$.$.$.$.$.$.$.$.$
$.$.$.$.$.$.$.$.$.$$$.$.$$$.$.$.$.$.$.$.$.$.$
$.$.$.$.$.$.$.$.$.$...$...$.$.$.$.$.$.$.$.$.$
$.$.$.$.$.$.$.$.$.$.$$$$$.$.$.$.$.$.$.$.$.$.$
$.$.$.$.$.$.$.$.$.$...$...$.$.$.$.$.$.$.$.$.$
$.$.$.$.$.$.$.$.$.$$$.$.$$$.$.$.$.$.$.$.$.$.$
$.$.$.$.$.$.$.$.$...$...$...$.$.$.$.$.$.$.$.$
$.$.$.$.$.$.$.$.$$$.$$$$$.$$$.$.$.$.$.$.$.$.$
$.$.$.$.$.$.$.$...$.......$...$.$.$.$.$.$.$.$
$.$.$.$.$.$.$.$$$.$$$$$$$$$.$$$.$.$.$.$.$.$.$
$.$.$.$.$.$.$...$...........$...$.$.$.$.$.$.$
$.$.$.$.$.$.$$$.$$$$$$$$$$$$$.$$$.$.$.$.$.$.$
$.$.$.$.$.$...$...............$...$.$.$.$.$.$
$.$.$.$.$.$$$.$$$$$$$$$$$$$$$$$.$$$.$.$.$.$.$
$.$.$.$.$...$...................$...$.$.$.$.$
$.$.$.$.$$$.$$$$$$$$$$$$$$$$$$$$$.$$$.$.$.$.$
$.$.$.$...$.......................$...$.$.$.$
$.$.$.$$$.$$$$$$$$$$$$$$$$$$$$$$$$$.$$$.$.$.$
$.$.$...$...........................$...$.$.$
$.$.$$$.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.$$$.$.$
$.$...$...............................$...$.$
$.$$$.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.$$$.$
$...$...................................$...$
$$$.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.$$$
..$.......................................$..
..$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$..

--------------------------------
Process exited after 1.411 seconds with return value 0
Press any key to continue . . .
一派護法 十九級
4樓 發表于:2016-3-16 23:00
回復3樓 @巨大八爪鱼 的內容:
10
..$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$..
..$.........................................
排版太乱了。。。

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
(快捷鍵:Ctrl+Enter)
 

本帖信息

點擊數:318 回複數:3
評論數: ?
作者:巨大八爪鱼
最後回復:巨大八爪鱼
最後回復時間:2016-3-16 23:00
 
©2010-2024 Arslanbar Ver2.0
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。