Soy nuevo en el lenguaje de programación C. Quiero que el siguiente código se repita en el menú principal después de "Transacción exitosa" y también almacene un nuevo saldo después de ingresar una cantidad. Aqui esta el codigo
#include<stdio.h>
int main()
{
int mainmenu, amt, balance = 0;
printf("1.Pay \n");
printf("2.Balance \n");
printf("3.Transaction history \n");
scanf("%d",&mainmenu);
if(mainmenu == 1){
printf("Select Amount \n");
printf("$0.50 \n");
printf("$1.00 \n");
printf("$1.50 \n");
printf("$2.00 \n");
scanf("%d",&amt);
if(amt == 1){
balance = balance + 0.5;
printf("Transaction Successful \n");
}
if(amt == 2){
balance = balance + 1;
printf("Transaction Successful \n");
}
if(amt == 3){
balance = balance + 1.5;
printf("Transaction Successful \n");
}
if(amt == 4){
balance = balance + 2;
printf("Transaction Successful \n");
}
}
if(mainmenu == 2){
printf("\n");
printf("Balance = %d",balance,"\n");
}
if(mainmenu == 3){
printf("No Transaction History At The Moment");
}
}
2 respuestas
Hay dos métodos diferentes que puede utilizar. Un bucle while
o un bucle for
.
La sintaxis de ambos es así:
while(condition) {
statement(s); // execute this section of code until the condition is met
}
Y
for (initilization; condition; increment){
statement(s); // execute this section of code until the condition is met
}
Si desea un bucle infinito, puede usar TRUE
como condición en el bucle while
como:
while(TRUE) {
statement(s); // execute this section of code indefinitely
}
O puede dejar los parámetros vacíos en el ciclo for
así:
for( ; ; ){
statement(s); // execute this section of code indefinitely
}
En su caso, se vería así:
#include<stdio.h>
int main()
{
int mainmenu, amt, balance = 0;
while(TRUE){
printf("1.Pay \n");
printf("2.Balance \n");
printf("3.Transaction history \n");
scanf("%d",&mainmenu);
if(mainmenu == 1){
printf("Select Amount \n");
printf("$0.50 \n");
printf("$1.00 \n");
printf("$1.50 \n");
printf("$2.00 \n");
scanf("%d",&amt);
if(amt == 1){
balance = balance + 0.5;
printf("Transaction Successful \n");
}
if(amt == 2){
balance = balance + 1;
printf("Transaction Successful \n");
}
if(amt == 3){
balance = balance + 1.5;
printf("Transaction Successful \n");
}
if(amt == 4){
balance = balance + 2;
printf("Transaction Successful \n");
}
}
if(mainmenu == 2){
printf("\n");
printf("Balance = %d",balance,"\n");
}
if(mainmenu == 3){
printf("No Transaction History At The Moment");
}
}
}
O:
#include<stdio.h>
int main()
{
int mainmenu, amt, balance = 0;
for( ; ; ){
printf("1.Pay \n");
printf("2.Balance \n");
printf("3.Transaction history \n");
scanf("%d",&mainmenu);
if(mainmenu == 1){
printf("Select Amount \n");
printf("$0.50 \n");
printf("$1.00 \n");
printf("$1.50 \n");
printf("$2.00 \n");
scanf("%d",&amt);
if(amt == 1){
balance = balance + 0.5;
printf("Transaction Successful \n");
}
if(amt == 2){
balance = balance + 1;
printf("Transaction Successful \n");
}
if(amt == 3){
balance = balance + 1.5;
printf("Transaction Successful \n");
}
if(amt == 4){
balance = balance + 2;
printf("Transaction Successful \n");
}
}
if(mainmenu == 2){
printf("\n");
printf("Balance = %d",balance,"\n");
}
if(mainmenu == 3){
printf("No Transaction History At The Moment");
}
}
}
La forma más sencilla es probablemente usar un ciclo while en este caso.
while(1){
//mainmenu here
printf("4. Exit Program");
scanf("%d", &mainmenu);
//if statements/functions here
}
Esto requeriría que agregue una cuarta opción para salir del ciclo while, para que no se ejecute sin cesar (también podría usar otros métodos para saber cuándo salir). Un buen aspecto de esto es que si accidentalmente ingresan algo no válido como 5 o 7, no causa ningún error, sino que simplemente ejecuta el ciclo nuevamente.
Tenga en cuenta que tendría que poner todas sus sentencias if dentro del ciclo while, o ponerlas en una función diferente y llamar a esa función después de obtener la entrada del usuario.
PD Las declaraciones de cambio no relacionadas pero probablemente serían un poco más fáciles que las declaraciones de otro tipo aquí. No son necesarios, pero podrían facilitarle un poco la vida.
Preguntas relacionadas
Nuevas preguntas
c
C es un lenguaje de programación de uso general utilizado para la programación del sistema (SO e integrado), bibliotecas, juegos y multiplataforma. Esta etiqueta debe usarse con preguntas generales sobre el lenguaje C, como se define en el estándar ISO 9899 (la última versión, 9899: 2018, a menos que se especifique lo contrario; también etiquete las solicitudes específicas de la versión con c89, c99, c11, etc.). C es distinto de C ++ y no debe combinarse con la etiqueta C ++ en ausencia de una razón racional.