[Error] ld returned 1 exit status

Iniciado por goofyalas, 14 Noviembre 2016, 14:28 PM

0 Miembros y 1 Visitante están viendo este tema.

goofyalas

me aparece este mensaje y nose porke se debe :c alguien que me ayude :c

#include <stdio.h>
#include <string.h>
#include "dibujos.h"
#include <stdlib.h>
#include <ctype.h>

#define plb1 "alfajor" //palabras incognitas
#define plb2 "cazador"
#define plb3 "pulento"
#define plb4 "maquina"
#define plb5 "gozador"
#define plb6 "chilito"
#define plb7 "donador"
#define plb8 "arrojar"
#define plb9 "windiws"
#define plb0 "ganador"

void Seleccion_de_palabra (char *, int *);
void Ingreso_de_letra(int *,char *, char *);
void Verificador_de_letra(char *, char *, char *, char *, char *, char *, char *, int *, char *, char *);
void Verificador_de_error(int *, char *, int *, char *, char *, char *, char *, char *, int *);
void Verificador_de_termino(int *, char *, char *, int *);
void Volver_a_jugar(char *);
void Reinicio_de_var_importantes(char *, char *, int *, int *, char *, char *, char *, char *, char *, int *);



int main (){                         //funcion main ejecuta las demas funciones. Entrada nada retorno nada
char plb[10];         //Variable la cual toma el valor de las palabras incognitas
char progress [16]="_ _ _ _ _ _ _";   //variable la cual mostrara lo que lleva el jugador
int vida=0;             //variable que llevara el numero de vidas
char again [3]="s";       //variable que hara reiniciar el juego
int cont_1=0;           //variable de contension para ver si la letra ingresada coincide con alguna letra de la palabra 
char cont_2 [10]="xxxxxxx";     //variable de contension que sirve para llevar una cuenta de las letras que ya se descubrieron
int cont_3=0;           //variable de contension que ayuda a salir de la iteracion de probar letras
char letra [2]="a";       //variable que almacena la letra ingresada
int num=0;              //variable que elige la palabra que se usara
char a[2];            //variables que almacenan letras erroneas
char e[2];
char i[2];
char o[2];
char u[2];
int cont=0;             //variable de contension que sirve para asgnar letras erroneas
while (again [0]=='s'){
Seleccion_de_palabra(&plb[10], &num);
    while (cont_3==0){
    Ingreso_de_letra(&vida, &progress[16], &letra[2]);
    Verificador_de_letra(&letra[2], &a[2], &e[2], &i[2], &o[2], &u[2], &progress[16], &cont_1, &cont_2[10], &plb[10]);
    Verificador_de_error(&cont_1, &letra[2], &vida, &a[2], &e[2], &i[2] , &o[2], &u[2], &cont);
    Verificador_de_termino(&vida, &plb[10], &cont_2[10], &cont_3);
    }
    Volver_a_jugar(&again[3]);
    Reinicio_de_var_importantes(&cont_2[10], &progress[16], &vida, &cont_3, &a[2], &e[2], &i[2] , &o[2], &u[2], &cont);
}
return 0;
}
void Seleccion_de_palabra (char *plb[10], int *num){        //en esta funcion se selecciona una palabra para ser ocupada.Entrada struct variables retorno nada
if (*num==10){
*num=*num-10;
}
switch (*num){
case 0:
strcpy (*plb,plb1);
*num++;
break;
case 1:
strcpy (*plb,plb2);
*num++;
break;
case 2:
    strcpy (*plb,plb3);
*num++;
break;
case 3:
strcpy (*plb,plb4);
*num++;
break;
case 4:
    strcpy (*plb,plb5);
*num++;
break;
case 5:
strcpy (*plb,plb6);
*num++;
break;
case 6:
strcpy (*plb,plb7);
*num++;
break;
case 7:
    strcpy (*plb,plb8);
*num++;
break;
case 8:
strcpy (*plb,plb9);
*num++;
break;
case 9:
strcpy (*plb,plb0);
*num++;
break;
}
}
void Ingreso_de_letra(int *vida,char *progress[16], char *letra[2]){             //en esta funcion se ingresa una letra intentando atinar a la palabra incognita .Entrada struct variables retorno nada
system("cls");
TituloJuego();
switch (*vida){
case 0:
SinAhorcado();
break;
case 1:
Cabeza();
break;
case 2:
Tronco();
break;
case 3:
BrazoIzquierdo();
break;
case 4:
BrazoDerecho();
break;
case 5:
PiernaIzquierda();
break;
case 6:
PiernaDerecha();
break;
}
    printf("\n\n\t%s", *progress);
    printf("\n\n");
    do{
        if (!isalpha(*letra[0])){
        printf("dato ingresado no corresponde\n");
}
printf("ingrese  una letra:\n");
        scanf("%s", & *letra [0]);
        *letra[0]=tolower(*letra[0]);
}while(!isalpha(*letra[0]));
system("cls");
}
void Verificador_de_letra(char *letra[2], char *a[2], char *e[2], char *i[2], char *o[2], char *u[2], char *progress[16], int *cont_1, char *cont_2[10], char *plb[10]){         //en esta funcion se verifica la letra comparandola con las letras de la palabra incognita.Entrada struct variables retorno nada
while (*letra[0]!=*a[0] && *letra[0]!=*e[0] && *letra[0]!=*i[0] && *letra[0]!=*o[0] && *letra[0]!=*u[0]){
    if (*plb [0]==*letra[0]){
    *progress [0]=*letra[0];
    *cont_1=1;
    *cont_2 [0]='g';
    }
    if (*plb [1]==*letra[0]){
    *progress [2]=*letra[0];
    *cont_1=1;
    *cont_2 [1]='a';
    }
    if (*plb [2]==*letra[0]){
    *progress [4]=*letra[0];
    *cont_1=1;
    *cont_2 [2]='n';
    }
    if (*plb [3]==*letra[0]){
    *progress [6]=*letra[0];
    *cont_1=1;
    *cont_2 [3]='a';
    }
    if (*plb [4]==*letra[0]){
    *progress [8]=*letra[0];
    *cont_1=1;
    *cont_2 [4]='s';
    }
    if (*plb [5]==*letra[0]){
    *progress [10]=*letra[0];
    *cont_1=1;
    *cont_2 [5]='t';
    }
    if (*plb [6]==*letra[0]){
    *progress [12]=*letra[0];
    *cont_1=1;
    *cont_2 [6]='e';
    }
    break;
}
}
void Verificador_de_error(int *cont_1, char *letra[2], int *vida, char *a[2], char *e[2], char *i[2], char *o[2], char *u[2], int *cont){         //en esta funcion se verfica el error al ingresar la letra .Entrada struct variables retorno nada
if (*cont_1==0){
while (*letra[0]!=*a[0] && *letra[0]!=*e[0] && *letra[0]!=*i[0] && *letra[0]!=*o[0] && *letra[0]!=*u[0]){
*vida++;
break;
}
switch (*cont){
case 0:
*a[0]=*letra[0];
*cont++;
break;
case 1:
    *e[0]=*letra[0];
    *cont++;
break;
case 2:
*i[0]=*letra[0];
*cont++;
break;
case 3:
*o[0]=*letra[0];
*cont++;
break;
case 4:
*u[0]=*letra[0];
*cont++;
break;
default:
break;
}
}
*cont_1=0;
}
void Verificador_de_termino(int *vida, char *plb[10], char *cont_2[10], int *cont_3){       //en esta funcion se decide si el jugador gano o perdio.Entrada struct variables retorno nada
if (*vida==6){
*cont_3=1;
system("cls");
        TituloJuego();
        MensajePerdiste();
        printf("\n\n");
        printf("La palabra era %s\n", *plb);
        system("pause");
}
if (*cont_2 [0]=='g' && *cont_2 [1]=='a' && *cont_2 [2]=='n' && *cont_2 [3]=='a' && *cont_2 [4]=='s' && *cont_2 [5]=='t' && *cont_2 [6]=='e'){
*cont_3=1;
system("cls");
        TituloJuego();
        MensajeGanaste();
        printf("\n\n");
        printf("La palabra era %s\n", *plb);
        system("pause");
}
}
void Volver_a_jugar(char *again[3]){               //en esta funcion se le da la opcion al usuario para volver a jugar.Entrada struct variables retorno nada
printf ("¿Quieres volver a jugar? \n Si es asi escribe si , sino escribe no \n");
scanf ("%s", *again);
*again[0]=tolower(*again[0]);
}
void Reinicio_de_var_importantes(char *cont_2[10], char *progress[16], int *vida, int *cont_3, char *a[2], char *e[2], char *i[2], char *o[2], char *u[2], int *cont){  //en esta funcion se reinicia los valores de algunas variables claves para el prgrama .Entrada struct variables retorno nada
*cont_3=0;
*vida=0;
*cont_2 [0]='x';
*cont_2 [1]='x';
*cont_2 [2]='x';
*cont_2 [3]='x';
*cont_2 [4]='x';
*cont_2 [5]='x';
*cont_2 [6]='x';
*progress [0]='_';
*progress [2]='_';
*progress [4]='_';
*progress [6]='_';
*progress [8]='_';
*progress [10]='_';
*progress [12]='_';
*a[0]=' ';
*e[0]=' ';
*i[0]=' ';
*o[0]=' ';
*u[0]=' ';
*cont=0;
}


MOD: Etiqueta GeSHi.

MCKSys Argentina

Hola!

Puede que sea porque en la linea 32 inicializas
char again [3]="s"
y la condición del bucle de la linea 44 es
while (again [0]=='s'){

Fíjate que los subíndices son distintos por lo que el blucle termina sin ejecutar nada.

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


ivancea96

Cuando envías a una función un array,pones el nombre del array, sin corchetes.
Seleccion_de_palabra(&plb[10], &num);
Ahí le estás enviendo de primer parámetro la dirección del undécimo elemento de "plb".
Si quieres enviar la dirección de plv, sería:
Seleccion_de_palabra(&plb, &num);

Y lo mismo con todas las ocurrencias de este problema.