Dev - C++ - Ayuda en while (ejercicio)

 
Vista:
sin imagen de perfil

Ayuda en while (ejercicio)

Publicado por Jacob (1 intervención) el 19/11/2016 20:26:35
Hola, soy nuevo programando y tengo una duda en while, no se como hacer para que termine, al tener muchas variables... el problema esta al introducir -1 como diferencia para que termine el ciclo y no me siga preguntando las demás impresiones de las otras lineas...

El ejercicio es de "Cómo programar en C/C++ de deitel &deitel" y dice así:(Esta en las imágenes ademas de el código que escribe para resolver este ejercicio donde no se como terminar while)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*INICIA MI PROGRAMA*/
#include<stdio.h>
 
main(){
	float saldo_in;
	int cuenta;
	float cargos;
	float creditos;
	float credito_lim;
	float total=0;
	int cont;
 
 
	while (cuenta !=-1){
		total= saldo_in + cargos - creditos;
		cont = cont + 1;
 
	printf("Introduce tu numero de cuenta	(-1 para terminar):\t");
	scanf("%d", &cuenta);
	printf("introduce el saldo inicial:\t");
	scanf("%f", &saldo_in);
	printf("Introduce el total de cargos:\t");
	scanf("%f", &cargos);
	printf("Introduce total de creditos:\t");
	scanf("%f", &creditos);
	printf("Introduce el limite de creditos:\t");
	scanf("%f", &credito_lim);
	}
	printf ("cuenta: %d\n", cuenta);
	printf ("creditos: %f\n", credito_lim);
	printf ("saldo: %f\n", total);
 
	if (total > credito_lim){
		printf("limite de credito excedido\n");
	}
	return 0;
} /*AQUI TERMINA MI PROGRAMA*/


Boceto3
Boceto
Boceto1


Espero puedan ayudarme y gracias por su atención :D
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 661
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda en while (ejercicio)

Publicado por agustin (522 intervenciones) el 19/11/2016 21:23:09
Justo después del scanf que solicita el número de cuenta pon esto:
1
2
if(cuenta == -1)
    continue;
Eso hará que cuando sea -1 salte todo lo que resta por ejecutarse en el while y vaya directamente a la siguiente iteración y como no se cumplirá la condición del bucle no entrará.
También podrías sustituir el continue por un break pero entonces no tendría sentido la condición del while ya que daría lo mismo poner un bucle infinito como por ejemplo while(-1){ ...} o for(;;;){...} ya que se usaría el condicional con el break para salir.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda en while (ejercicio)

Publicado por dario (44 intervenciones) el 25/11/2016 02:55:45
Te dejo este codigo en C++, espero te ayude. Saludos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
 
using namespace std;
 
int main() {
    int numCuenta; //numero de cuenta
    int saldoInicial; //saldo inicial
    int cargosTotales; //cargos totales
    int creditosTotales; //total de creditos
    int limCredito; //limite de credito
    int nuevoSaldo=0;
    int flag = 1; //centinela
 
    while (flag) {
        cout <<"Numero de cuenta (-1 para salir): ";
        cin >>numCuenta;
        if (numCuenta == -1)
            flag = 0;
        else {
            cout <<"Saldo inicial: ";
            cin >>saldoInicial;
            cout <<"Cargos totales: ";
            cin >>cargosTotales;
            cout <<"Creditos totales: ";
            cin >>creditosTotales;
            cout <<"Limite de credito: ";
            cin >>limCredito;
            cout <<endl;
            nuevoSaldo = (saldoInicial+cargosTotales-creditosTotales);
 
            if (nuevoSaldo > limCredito) {
                cout <<"Numero de cuenta: " <<numCuenta;
                cout <<"\nLimite de credito: " <<limCredito;
                cout <<"\nNuevo saldo: " <<nuevoSaldo;
                cout <<"\nSe excedio el limite de su credito" <<endl<<endl;
            }
        }
    }
 
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar