Como te comentan, tu código no tienen ningún sentido.
Te expongo algunos ejemplos:
Ejemplo 1:for (i=numentero;numentero>1;i--)
{
// ...
i++;
}
Tenemos un bucle que lo inicializa en el número que introduce el usuario y se repite mientras ese número sea mayor que 1... a todo esto i lo decrementa a cada pasada ... para incrementarlo de nuevo al final del bucle.
Resultado: El bucle se repite indefinidamente si el usuario introduce un número superior a 1, además i no cambia nunca de valor después de una iteración completa. Además i no se usa en ningún momento.
Ejemplo 2:if(residuo==0)
{
par=cociente;
par=0;
binario[b]=par;
b++;
}
Si el número es par, almacenamos en la variable "par" el cociente ( no se por qué ), inmediatamente después se almacena en "par" el valor 0, luego par SIEMPRE vale 0... y después en "binario[ b ]" se almacena "par", es decir, "0". A todo esto "b" no se ha inicializado, por lo que las probabilidades de que tenga un valor superior a 100 o inferior a 0 son muchísimas... además, dado que el bucle del ejemplo anterior no se controla... aunque b tuviese un valor inicial válido, tarde o temprano se saldría del rango 0-100.
PD.: la línea "binario[ b ] = par" es una de las que te está dando problemas de casque de la aplicación.
Ejemplo 3:else
{
inpar=cociente;
inpar=1;
binario[b]=inpar;
b++;
}
Idéntico al ejemplo anterior, solo que en este caso inpar ( que se escribe impar ) siempre va a valer 1. "binario[ b ]=inpar" presenta la segunda vía por la que casca la aplicación ya que b sigue sin estar inicializada.
Ejemplo 4:for(r=b;r=0;r--)
{
cout<<","<<binario[b];
b--;
}
Entiendo que aquí quieres imprimir el binario resultante... o esa es la idea. Si tu código consiguiese llegar hasta aquí simplemente no se ejecutaría.
for(r=b;r=0;r--)
La línea anterior se corresponde a la de un for mal montado. Básicamente estas diciendo que el bucle empieza con r=b y que debe repetirse mientras r=0... es decir, nunca.
r=0 está mal... en tal caso debería ser una comparación, es decir, r == 0. Lo que sucede en tu caso es que quieres que el bucle recorra el vector "binario", por lo que la condición que deberías haber puesto es r >= 0. En la primera iteración, r siempre va a tener un valor superior a cero, luego r == 0 no es una condición válida en ningún caso.
Además, dado que estás haciendo un incremento de b después de guardar un valor nuevo en "binario", b apunta a un índice que no es válido, tendrías que hacer un preincremento para que b apunte a valores correctos.
Y una cosilla más es la presentación del resultado... el poner esa coma ahí hace que, si consigues corregir todo lo anterior y tu programa consigue llegar ahí te arrojará un resultado tal que:
,1,0,0,0,1,1,1,0,1,1,0,1
No se ... pero esa coma inicial creo que no pinta nada... bueno, ni esa ni ninguna, los números binarios no se representan con comas.
ConclusiónComo puedes ver tienes que pulir unas cuantas cosas. Intenta corregirlas a ver si consigues que te funcione el programa.
Un saludo.