Google Búsqueda personalizada

Regístrate gratis para participar de los foros, o si ya estás registrado haz login.

Problema en estructura de c++

comentario del autor Jue Jul 02, 2009 1:56 am
   
Bueno mi problema es el siguiente, tengo el siguiente codigo:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int op,i,numcandi,cont=0;

int buscar(int codigo);

struct inventario
{
char nombre[20];
char artista[20];
unsigned int codigo;
unsigned int precio;
unsigned int existencias;
unsigned int id;
};

struct inventario accede[5];


int menu()
{
system("cls");
printf("\n\n\n\n\n\n\t\t ***** Sistema de Tienda de Discos *****");
printf("\n\t\t *\t\t\t\t\t *");
printf("\n\t\t *\t 1.- Captura\t\t *\n");
printf("\t\t *\t 2.- Ventas por Artista\t *\n");
printf("\t\t *\t 3.- Ventas por Album\t *\n");
printf("\t\t *\t 4.- Busqueda\t\t *\n");
printf("\t\t *\t 5.- Salir de Sistema\t *\n");
printf("\t\t *\t\t\t\t\t *\n");
printf("\t\t *****************************************\n");
printf("\t\t\t Opcion: ");
scanf("%d",&op);
if(op>5 || op<1)
{
system("cls");
printf("\n\n\n\n\n\n\n\n\n\t\t\t Tecle la opcion correcta\n");
system("PAUSE");
menu();
}

};


int captura()
{
system("cls");
printf("Introduce el numero de discos a capturar:");
scanf("%d",&numcandi);
for(i=1 ; i<numcandi+1 ; i++)
{
printf("ID: ");
scanf("%d",&accede[i].id);
printf("Nombre de disco %d: ",i);
scanf("%s",&accede[i].nombre);
printf("Nombre de artista %d: ",i);
scanf("%s",&accede[i].artista);
printf("Año de publicacion: ");
scanf("%d",&accede[i].codigo);
printf("Numero de unidades existentes: ");
scanf("%d",&accede[i].existencias);
printf("Precio: ");
scanf("%d",&accede[i].precio);
system("cls");
}
};


int mostrar()
{
system("cls");
char artist[20];
printf("Introduce el artista a buscar:");
scanf("%s",&artist[20]);

for(i=1 ; i<=5 ; i++)
{
if(accede[i].id==0 && accede[i].artista==artist[i])
{
return 0;
}
else
{
printf("ID: %d",accede[i].id);
printf("\nNombre de disco %s: ",accede[i].nombre);
printf("\nNombre de artista %s: ",accede[i].artista);
printf("\nAño de publicacion: %d",accede[i].codigo);
printf("\nNumero de unidades existentes: %d",accede[i].existencias);
printf("\nPrecio: %d",accede[i].precio);
system("PAUSE");
system("cls");
}

}

};



//funcion main//

int main(int argc, char *argv[])
{
char re;
int publicacion;
int codigo;
int Posicion;
do
{
menu();
switch(op)
{
case 1:
{
captura();
}
break;
case 2:
{
mostrar();
}
break;
case 3:
{

}
break;
case 4:
{
}
break;
case 5:
return 0;
}
}
while (op!=0);
system("PAUSE");
return 0;
}

mi problema en si es que al momento de que mando llamar la funcion de mostrar, le pongo que me busque por ejemplo al artista mana, pero cuando compara jamas entra en el if y no me toma la comparacion, alguien que me pueda ayudar para poder hacer la comparacion y que me muestre los datos que ahi quiero mostrar.

Gracias de antemano.

larkiño

Reputación

asistió a la solución Jue Jul 02, 2009 9:38 pm
   
en este if?

if(accede[i].id==0 && accede[i].artista==artist[i])

puede que debas usar la funcion strncmp() en ese if porque estas queriendo comparar 2 cadenas


tambien verifica que se haya ingresado bien el
scanf("%s",&artist[20]);
imprimiendo nuevamente lo que tienes en artist[20]


Saludos

torresdelamora

Reputación



Hacer una pregunta

Boletín de Noticias

Reciba noticias de tecnología, tips de reparación y ofertas exclusivas.



Reglamento / P+F

Foros

Miembros / Expertos