Meu codigo nao impreme como esperado !!!

1. Meu codigo nao impreme como esperado !!!

João vitor kilberyt
joaovitor02

(usa Outra)

Enviado em 21/02/2016 - 11:33h

não sei como fazer com que meu codigo printe assim :
CD1: Mamonas
musicas: - brasilia amarela
- pelados em santos
CD2: Anos 80
musicas: - music1
- music2
segue o codigo
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>


typedef struct CD{
char cd[50];
struct CD* prox;
}CD, *noCD;


typedef struct Listamusic{
char music[50];
struct Listamusic* prox;
}Listamusic, *nomusic;


void cria (noCD *l){
(*l) = NULL;
}

_Bool busca(noCD *l,char v[50]){
CD *q;
int i=0;
char info[i];
for(i=0;i<50;i++){
for (q=*l; q!=NULL; q=q->prox){
if(q->cd[i] == v[i]){
if(!(strcmp(q->cd,v))){
puts(q->cd);
printf("\n\nachou %d\n\n\n",i);
return q;
}
i++;

}}}
return false;
}

void imprime (noCD* l){
CD *p;
for (p=*l; p!=NULL; p=p->prox){
puts(p->cd);
}


}

_Bool insere_ordenado (noCD *l, char v[50]){

CD *p;
if(busca(l,v)){
printf("Ja existe\n");
return false;
}

p = (CD*) malloc(sizeof(CD));
strcpy(p->cd,v);
CD* ant = NULL;
CD *r = *l;
while (r != NULL && (strcmp(v,r->cd) > 0)) {
ant = r;
r= r->prox;
}
if (ant == NULL) {
p->prox = *l;
*l = p;
}
else {
p->prox = ant->prox;
ant->prox = p;
}
return l;
}

_Bool retira (noCD* l, char v[50]) {//Em qualquer posicao
CD *ant = NULL;
CD *p;
p = *l;
while (p != NULL && (strcmp(p->cd, v)!=0)) {
ant = p;
p = p->prox;
}
if (p == NULL)
return l;
if (ant == NULL) {
*l = p->prox;
}
else {
ant->prox = p->prox;
}
free(p);
return l;
}


//FUNÇÕES PARA cd
void crialistadisc (nomusic *l){
(*l) = NULL;
}

_Bool buscadisc(nomusic *l,char v[50]){
Listamusic *q;
int i=0;
for(i=0;i<50;i++){
for (q=*l; q!=NULL; q=q->prox){
if(q->music[i] == v[i]){
if(!(strcmp(q->music,v))){
puts(q->music);
printf("\n\nachou %d\n\n\n",i);
return q;
}
i++;
}
return false;
}
}}
void imprimedisc (nomusic* l){
Listamusic *p;
for (p=*l; p!=NULL; p=p->prox){
puts(p->music);
}
}

_Bool insere_ordenado_disc (nomusic *l, char v[50]){
int i=0;
Listamusic *p;
if(buscadisc(l,v)){
printf("Ja existe\n");

return false;
}

p = (Listamusic*) malloc(sizeof(Listamusic));
strcpy(p->music,v);
Listamusic* ant = NULL;
Listamusic *r = *l;
while (r != NULL && r->music[i] < v[i]) {
ant = r;
r= r->prox;
}
if (ant == NULL) {
p->prox = *l;
*l = p;
}
else {
p->prox = ant->prox;
ant->prox = p;
}


return l;
}

_Bool retiradisc (nomusic* l, char v[50]) {//Em qualquer posicao
Listamusic *ant = NULL;
Listamusic *p;
p = *l;
int i=0;
while (p != NULL && p->music[i] != v[i]) {
ant = p;
p = p->prox;
}
if (p == NULL)
return l;
if (ant == NULL) {
*l = p->prox;
}
else {
ant->prox = p->prox;
}
free(p);
return l;
}

void menuCD(){
CD *l;
Listamusic *d, *r;
cria(&l);
int op;
char dado[50], music[50];
do{

printf("1)Insere, 2)Imprime, 3)Busca ou 4)Remove? \n");
scanf("%d",&op);


if(op==1){
//system("cls");
printf("Digite o nome: ");
scanf(" %50[^\n\t]",dado);
insere_ordenado(&l,dado);//system("cls");
printf("Insira a musica: ");
scanf(" %20[^\n\t]",music);

if(music==r->music)
insere_ordenado_disc(&d,music);
}
if(op==2){
printf("Dados:\n");

imprime(&l);
}

if(op==3){
printf("Qual nome: ");
scanf(" %50[^\n\t]",dado);

busca(&l,dado);
}

if(op==4){
printf("Qual nome: ");
scanf(" %50[^\n\t]",dado); //30 tamanho do char
retira(&l,dado);
}

}while(op!=0);
}
void menumusica(){
CD *l;
Listamusic *d;
cria(&l);
crialistadisc(&d);
int op;
char music[20];
do{

printf("1)Insere, 2)Imprime, 3)Busca ou 4)Remove?\n ");
scanf("%d",&op);


if(op==1){
//system("cls");

printf("Insira a musica: ");
scanf(" %20[^\n\t]",music);
insere_ordenado_disc(&d,music);
}
if(op==2){
printf("Dados:\n");

imprimedisc(&d);
}

if(op==3){
printf("Qual nome: ");
scanf(" %50[^\n\t]",music);

buscadisc(&d,music);
}

if(op==4){
printf("Qual nome: ");
scanf(" %50[^\n\t]",music);
retiradisc(&d,music);
}

}while(op!=0);
}
int main(int argc, char **argv){
char op;

do{
printf("1)Disco \n 2)Musica \n");
scanf("%d",&op);

switch (op){
case 1:
menuCD();
break;

case 2:
menumusica();
break;
}}while(op!=0);

return 0;
}



  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts