es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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>

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El problema con el programa se encuentra en la condición del for-loop. a=0; a=11; debe ser a=0; a<=11; para poder recorrer todos los caracteres en la cadena de texto m. Además, la variable j no es necesaria ya que la longitud de la cadena se puede obtener mediante la función strlen(). La variable s también no se utiliza y se puede eliminar.

    Aquí está el código corregido:

    #include <stdio.h>
    #include <string.h>
    
    void main()
    {
      char m[20] = "12345678.23";
      int a;
    
      for (a = 0; a <= strlen(m); a++)
      {
        printf("%c", m[a]);
    
        if (a == 1 || a == 5)
        {
          printf(",");
        }
      }
    }
    

    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>

Comments are closed.