注册 登录
编程论坛 C语言论坛

急,求题解,有没有大佬会这个

快乐的小风男 发布于 2019-11-10 14:24, 1118 次点击
题目描述
jyl

有一张n*m个像素的黑白图片。

他喜欢这张照片,所以他想按比例缩放a*b次。

也就是说,将每个像素替换为a*b个具有相同颜色的像素块(为清楚起见,请参见示例)。

输入格式
输入包含零个或多个测试用例,并以文件结尾终止。 对于每个测试用例,第一行包含四个整数n,m,a,b。 接下来的n行每行一个长度为m的二进制字符串,该字符串表示原始图片的第i行。 字符“ 0”代表白色像素,字符“ 1”代表黑色像素。

1<=n,m,a,b<=10 测试案例数不超过10。

输出格式
对于每种情况,输出 n *a行,m *b列表示结果

输入输出样例
输入 #1 复制
2 2 1 1
10
11
2 2 2 2
10
11
2 2 2 3
10
11
输出 #1 复制
10
11
1100
1100
1111
1111
111000
111000
111111
111111
1 回复
#2
rjsp2019-11-11 09:41
哪里不会,你的代码呢?

程序代码:
#include <stdio.h>

int main( void )
{
    for( unsigned n,m,a,b; scanf("%u%u%u%i",&n,&m,&a,&b)==4; )
    {
        char img[10][11];
        for( unsigned r=0; r!=n; ++r )
            scanf( "%s", img[r] );

        for( unsigned i=0; i!=n*m*a*b; ++i )
        {
            size_t r = i/(a*b*m);
            size_t c = i/b%m;
            putchar( img[r][c] );
            if( (i+1)%(m*b) == 0 )
                putchar( '\n' );
        }
    }
}

1