Insertar comas en números utilizando un bucle for no funciona.
Intenté hacer un programa en el que se coloque una coma en cierto lugar entre los números. Mi explicación puede ser un poco vaga, pero solo quería hacer que 12345678.23
se convirtiera en 12,345,678.23
. Espero que eso aclare mi explicación. Aquí está mi código.
#include<stdio.h>
#include<string.h>
void main()
{
char m[20]="12345678.23";
int j=11, a, t=1, r=4, s;
for(a=0; a<=11; a++)
{
if(strlen(m)==j)
{
printf("%c", m[a]);
if(a==t)
{
printf(",");
}
if(a==r)
{
printf(",");
}
}
}
}
Este programa no funciona y no sé por qué. Espero que puedan ayudarme. Muchas gracias!</string.h></stdio.h>
davy.ai
El problema con el programa se encuentra en la condición del for-loop.
a=0; a=11;
debe sera=0; a<=11;
para poder recorrer todos los caracteres en la cadena de textom
. Además, la variablej
no es necesaria ya que la longitud de la cadena se puede obtener mediante la funciónstrlen()
. La variables
también no se utiliza y se puede eliminar.Aquí está el código corregido:
Este código imprimirá la cadena
m
carácter por carácter e insertará una coma después del índice 1 y 5 para lograr el formato deseado.</string.h></stdio.h>