Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

102
Visualizações
¿Cómo puedo agregar un + como una cadena usando C Language?

Estoy tratando de generar números del 1 al 5 usando for loop y mostrar su suma. Mi objetivo es tener una salida que se vea así:

1 + 2 + 3 + 4 + 5 = 15

Pero en cambio, obtengo la salida:

+ 1 + 2 + 3 + 4 + 5 = 15

 #include <stdio.h> void main() { int a, sum = 0; for (a = 1; a <= 5; a++) { printf("+\t%d\t",a); sum = sum + a; } printf("=\t%d", sum); }
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Esto se encuentra con mucha frecuencia cuando se generan listas separadas por algún valor. El problema es que tiene 5 valores para generar, pero solo 4 separadores. Si no hace nada especial, generará 5 separadores, que es exactamente lo que está sucediendo en su ejemplo. Incluso si mueve el separador después de su valor, todavía tendrá uno de más.

La forma en que prefiero hacerlo es esta:

 for (a = 1; a <= 5; ++a) { if (a > 1) printf("\t+\t"); printf("%d", a); sum += a; }

La razón por la que prefiero este enfoque, en lugar de generar algún valor fuera del bucle, es que, a menudo, lo que se genera es más complicado, lo que posiblemente involucre cálculos adicionales o llamadas a funciones, y no me gusta duplicar ese código.

Entonces, solo saco un separador si sé que estoy a punto de sacar la otra cosa. Eso significa, generar un separador para cada iteración de ciclo excepto la primera.

También me gusta hacerlo en estilo prefijo porque, por lo general, la condición para el primer elemento de un ciclo es más simple que la condición para el último elemento. También es compatible con un enfoque diferente que involucra una bandera:

 int first = 1; for (a = 1; a <= 5; ++a) { if (!first) printf("\t+\t"); first = 0; printf("%d", a); sum += a; }

Hay muchas otras formas en las que verá que se produce este tipo de patrón. Y puede haber varias formas de optimizarlo que reducen la legibilidad. Pero este enfoque es simple y fácil de seguir.

over 4 years ago · Santiago Trujillo Relatório

0

Puede tomar un puntero de tipo char y asignarle una cadena vacía como separador para la primera iteración y, después de imprimir el primer número, asigne la cadena separadora, al puntero, que desea imprimir entre dos números en iteraciones posteriores.

Implementación:

 #include <stdio.h> int main (void) { int a, sum = 0; char * str = ""; for (a = 1; a <= 5; a++) { printf("%s%d\t", str, a); sum = sum + a; str = "+\t"; } printf("=\t%d\n", sum); return 0; }

Producción:

 # ./a.out 1 + 2 + 3 + 4 + 5 = 15

Adicional:

  • El uso de void como tipo de retorno de la función main() no cumple con los estándares. El tipo de retorno de la función main() debe ser int .
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda