[ Foro de C ]

While

23-Oct-2020 09:12
Invitado (Esteban)
2 Respuestas

Tengo una actividad en C que consiste sumar los numeros ingresados desde el primero al segundo ingresado, el programa me funciono perfectamente y sigue funcionando pero cuando use switch mi programa por ejemplo al poner el primer numero ingresado: 2 y el segundo: 5 imprimia: 2+3+4+5+6 aunque si da la respuesta correcta de 2+3+4+5, pero no se como hacer para que deje de imprimir ese 6
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
int cont, num1, num2, suma=0, opc;
while (opc!=1)
{
system("cls"); //clear screen
printf("Menu\n0.Suma de ecuacion\n1.Salir\n");
printf("Dame una opcion:");
scanf("%i",&opc);
switch (opc)
{
case 0: printf("\n\tElige el numero en donde quiere que empiece su suma: ");
scanf("%i",&num1);
printf("\n\tElige el numero en donde quiera que termina su suma: ");
scanf("%i",&num2);
cont = num1;
printf("\n\t%i",num1);
while(cont<=num2){
suma+=cont;
cont++;
printf(" + %i",cont);
};
printf("\n\tLa suma de estos numeros es: %i\n\n",suma);
system("pause");
break;
case 1: printf("Bonito dia \n");
break;
default: printf("Error, opcion incorrecta\n\n");
system("\npause");
}
};
return 0;
}


23-Oct-2020 10:36
Nacho Cabanes (+84)

El error está aquí:


while(cont<=num2){
  suma+=cont;
  cont++;
  printf(\" + %i\",cont);
};


Sumas un número, pero lo incrementas y muestras el siguiente. Deberías hacer "cont++" después de escribir, no antes.


28-Oct-2020 16:16
Julián Bajerski Toranzo

while(cont<=num2){
 suma+=cont;
 cont++;
 printf(\" + %i\",cont);
};

El error se encuentra al poner cont++ antes del printf, debería ir después:

while(cont<=num2){
 suma+=cont;
 printf(\" + %i\",cont);
 cont++;
};






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)