Enviado em 21/02/2016 - 11:33h
não sei como fazer com que meu codigo printe assim :#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;
}
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
É cada coisa que me aparece! - não é só 3% (1)
Alguma pessoa pode me ajudar com drriver Core i3 7020u (Debian 12)? (2)
Mikrotik não mostra bytes nem packtes (1)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código [RESOLVID... (4)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta