C语言编写一个输出的函数

编写一个函数,输出数组,要求通过参数指定每行输出的元素个数,以 及每个元素占有的列数。 假设自己定义一个参数为x 那么打印的时候printf("%xd",)怎么用一个参数来满足每次打印时候 元素所占列数的不同呢

#include <stdio.h>

void display(int data[], int n, int cols, int w)
{
    for (int i = 0; i < n; i++)
    {
        printf("%*d", w, data[i]);
        if (i != 0 && i % cols == cols - 1) printf("\n");
    }
    printf("\n");
}

int main()
{
    int data[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 };
    display(data, 14, 3, 5);
}

http://codepad.org/gsV9ZIRB