Dev - C++ - Mi código no marca errores pero cuando ejecuto se vuelve loco en la parte de while

 
Vista:

Mi código no marca errores pero cuando ejecuto se vuelve loco en la parte de while

Publicado por YAZMIN (1 intervención) el 21/11/2022 19:17:45
//ESTRUCTURA DEL EXAMEN
#include<iostream>
#include<string>
#include<conio.h>
#include<stdio.h>
#include<windows.h>
#include<cstdlib>
#include<iomanip>
#include<cmath>
#include<stdlib.h>
#include <string.h>
#include <math.h>
#define Tamano 35
using namespace std;
main ()
{
char nombre [50];
int repetir=1, matricula, op, contador=1, SI, S, Si, si;
int arreglo [5];
string esp=" ";
cout<<"ESTRUCTURA EXAMEN\n\n";
for (int i=1; i<=3; i+i) {
cout<<"\n------------------------BIENVENIDO/A AL EXAMEN DEL SEGUNDO PARCIAL--------------------------------\n";
cout<<"\nINGRESA TU NOMBRE SEPARADO CON GUION BAJO:\n";
cin>>nombre;
cout<<"\nINGRESA TU MATRICULA:\n";
cin>>matricula;
system ("cls");
if (matricula==2022452033 && strcmp("YAZMIN_PINEDA_ARELLANO",nombre)==0)
{
contador=3;
contador++;
do {
cout<<"\n>>>>BIENVENIDA:\n"<<esp<<nombre<<endl<<esp<<matricula<<endl;
cout<<"\n\nPRESENTAMOS LAS OPCIONES QUE TENEMOS PARA TI:\n\n";
cout<<"\n1.- CONVERSION DE DECIMAL A BINARIO\n";
cout<<"\n2.- CONVERSION DE DECIMAL A OCTAL\n";
cout<<"\n3.- CONVERSION DE BINARIO A DECIMAL\n";
cout<<"\n4.- CONVERSION DE OCTAL A DECIMAL\n";
cout<<"\n5.- SALIR\n\n";
cout<<"\nTeclea el numero de opcion que desees realizar:\n";
cin>>op;
system ("cls");
switch (op) {
case 1:
{
int numero, exp, digito;
double binario;
cout<<"\n\n---------CONVERSION DE DECIMAL A BINARIO-------------\n";
cout << "\nIntroduce un numero en sistema decimal: \n";
cin >> numero;
exp=0;
binario=0;
while(numero/2!=0)
{
digito = numero % 2;
binario = binario + digito * pow(10.0,exp);
exp++;
numero=numero/2;
}
binario = binario + numero * pow(10.0,exp);
cout << fixed << setprecision(0);
cout << "\nEl numero en Binario es:\n"<<binario<<endl;

cout<<"\n¿DESEAS EJECUTAR OTRA OPCION? \n1/Si/SI/S/si \n2/No/NO/N/no\n";
cin>>arreglo[repetir];

system ("cls");

}
break;
/////////////////////////////////////////////////////////////
case 2:
{
unsigned long long int decimal = 0;

char cadena[63];
printf ("\n------------CONVERSION DE DECIMAL A OCTAL--------------\n");
printf("\nIngresa un numero en sistema decimal:\n");
scanf("%llu", &decimal);

ltoa(decimal, cadena, 8);
printf("\n\nEl numero en Octal es: %s\n", cadena);
cout<<"\n¿DESEAS EJECUTAR OTRA OPCION? \n1/Si/SI/S/si \n2/No/NO/N/no\n";
cin>>arreglo [repetir];
system("cls");
}
break;
//////////////////////////////////////////////////////////////
case 3:
{
cout<<"\n\n-------------CONVERSION DE BINARIO A DECIMAL-----------------\n";
int exp,digito;
double binario, decimal;
cout << "\nIntroduce un numero en sistema binario (1 y/o 0):\n ";
cin >> binario;
exp=0;
decimal=0;
while(((int)(binario/10))!=0)
{
digito = (int)binario % 10;
decimal = decimal + digito * pow(2.0,exp);
exp++;
binario=(int)(binario/10);
}
decimal=decimal + binario * pow(2.0,exp);
cout << endl << "El numero en Decimal es: \n" << decimal << endl;
cout<<"\n¿DESEAS EJECUTAR OTRA OPCION? \n1/Si/SI/S/si \n2/No/NO/N/no\n";
cin>>arreglo [repetir];
system ("cls");
}
break;
///////////////////////////////////////////////////////////////////////
case 4:
{
cout<<"\n--------------CONVERSION DE OCTAL A DECIMAL------------------\n";
int i=0,n,tmp,sum=0;
printf ("\n\nIngresa un numero en sistema octal:\n");
scanf("%d",&n);
while(n)
{
tmp=n%10;
n=n/10;
sum+=tmp*pow(8,i);
i++;
}
printf("\nEl numero en Decimal es: %d",sum, "\n");

cout<<"\n\n¿DESEAS EJECUTAR OTRA OPCION? \n1/Si/SI/S/si \n2/No/NO/N/no\n";
cin>>arreglo [repetir];
system ("cls");
}
break;
////////////////////////////////////////////////////////////////////////////
case 5:
printf("\nGracias por usar este programa\n Adios\n");
printf("\nSALIR [2/NO/N/No/no]:\n>");
scanf("%d",&arreglo [repetir]);
return 0;
break;
//////////////////////////////////////////////////////////////
default:
cout<<"******ELECCION INVALIDA******";
return 0;
}

} while (repetir==1 || repetir==SI || repetir==Si || repetir==S || repetir==si);

} else if (contador>=3) {
cout<<"\nCUENTA BLOQUEADA.\n"<<endl;
contador++;
return 0;

} else {
cout<<"\nEL USUARIO O LA MATRICULA SON INCORRECTOS, VUELVA A INTENTAR.\n";
contador++; // ( ++ solo le suma uno )
}
} //fin de while
while(contador != 3);
return 0;
getch();
}
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: 1.440
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Mi código no marca errores pero cuando ejecuto se vuelve loco en la parte de while

Publicado por dario (718 intervenciones) el 22/11/2022 05:42:19
Hola, aca tienes una rutina para converitr de decimal a binario.
Salu2.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
using namespace std;
 
int main()
{
    int n,x=1,binario=0;
 
    cout << "Escribe un numero: ";
    cin >> n;
 
    while (n >= 1) {
 
        if (n % 2== 1)
            binario = binario + x;
 
        n = n / 2;
        x = x * 10;
    }
 
    cout << binario;
    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