hola mi programa debería imprimir la matriz alineada a la derecha pero con solo 1 espacio entre columna, logre que imprima alineada a la derecha pero necesito que solo tenga 1 espacio entre columna.
codigo;
codigo;
Código [Seleccionar]
#include <stdio.h>
int len(int n)
{
int contador = 1;
while (n/10 > 0) {
n = n/10;
contador ++;
}
return contador;
}
int max(int h, int arr[])
{
int ans = arr[0];
for(int i = 1; i < h; i++)
if(ans < arr[i])
ans = arr[i];
return ans;
}
void pretty_print(int h, int w, int mtx[h][w])
{
for(int j = 0; j < h; j++) {
for(int i = 0; i < w; i++) {
int n;
int l;
int ans;
n = max(j, mtx[h]);
l = len(n);
ans = l + 1;
char str[l + 1];
sprintf(str, "%%%ii", ans);
printf(str,mtx[j][i]);
}
printf("\n");
}
}
int main()
{
int mtx[4][3] = {{20,34,474},{2,433, 1},{563,1,65},{43,56,789}};
pretty_print(4, 3, mtx);
return 0;
}