Estou com um programa que meu professor passou, quando tento compilar, ele apresenta erro na função clrscr();
eu estou achando estranho porque tanto a biblioteca conio.h quanto a stdlib.h estão declaradas e ainda assim acusa erro. Se alguém puder me dar uma ajuda, agradeceria imensamente. Obrigado.
ps.: eu estou usando o DEV-C++ v.4.9.9.2 e programando para windows.
#include <stdio.h> /* para printf */
#include <stdlib.h> /* para malloc */
#include <conio.h>
struct node {
char data;
struct node *next;
}; /* define modelo da struct node */
/* declara vars globais*/
struct node *head, *atual, *novo, *anterior;
void criar() {
head=(struct node *)NULL;
atual=(struct node *)NULL;
}
void incluir_inicio(char letra) {
novo=(struct node *)malloc(sizeof(struct node)); /* novo end.*/
novo->data=letra; /* insere campo data em novo */
novo->next=head; /* campo next de novo recebe endereco do
1o. elemento que esta em head */
head=novo; /* head aponta para novo=ele. inserido */
atual=novo;
}
int incluir_fim(char letra) {
int count=0;
novo=(struct node *)malloc(sizeof(struct node)); /* novo end */
novo->data=letra; /* insere campo data em novo */
/* percorre lista ate o final e insere */
atual=head;
if (atual == (struct node *)NULL) { /* lista vazia */
novo->next=head;
head=novo;
atual=novo;
count++;
return count;
}
while (atual->next != (struct node *)NULL){
count++;
atual=atual->next;
}
/* atingimos final da lista não vazia */
novo->next=atual->next; /* primeiro altera novo->next */
atual->next=novo; /* next de atual recebe end de novo */
atual=novo; /* ajusta atual p/ apontar para fim */
return count;
}
int imprimir() {
int count=0;
printf("\nImprimindo lista: ");
atual=head;
if (atual == (struct node *)NULL) {
printf("Lista vazia.\n");
return 0;
}
do {
count++;
printf(" %c ",atual->data);
atual=atual->next;
} while (atual != (struct node *)NULL);
return count;
}
int deletar(char letra) {
int count=0;
/* percorre lista ate o final ou até encontrar letra */
Pergunta
Lukas Couto
Boa tarde,
Estou com um programa que meu professor passou, quando tento compilar, ele apresenta erro na função clrscr();
eu estou achando estranho porque tanto a biblioteca conio.h quanto a stdlib.h estão declaradas e ainda assim acusa erro. Se alguém puder me dar uma ajuda, agradeceria imensamente. Obrigado.
ps.: eu estou usando o DEV-C++ v.4.9.9.2 e programando para windows.
#include <stdio.h> /* para printf */
#include <stdlib.h> /* para malloc */
#include <conio.h>
struct node {
char data;
struct node *next;
}; /* define modelo da struct node */
/* declara vars globais*/
struct node *head, *atual, *novo, *anterior;
void criar() {
head=(struct node *)NULL;
atual=(struct node *)NULL;
}
void incluir_inicio(char letra) {
novo=(struct node *)malloc(sizeof(struct node)); /* novo end.*/
novo->data=letra; /* insere campo data em novo */
novo->next=head; /* campo next de novo recebe endereco do
1o. elemento que esta em head */
head=novo; /* head aponta para novo=ele. inserido */
atual=novo;
}
int incluir_fim(char letra) {
int count=0;
novo=(struct node *)malloc(sizeof(struct node)); /* novo end */
novo->data=letra; /* insere campo data em novo */
/* percorre lista ate o final e insere */
atual=head;
if (atual == (struct node *)NULL) { /* lista vazia */
novo->next=head;
head=novo;
atual=novo;
count++;
return count;
}
while (atual->next != (struct node *)NULL){
count++;
atual=atual->next;
}
/* atingimos final da lista não vazia */
novo->next=atual->next; /* primeiro altera novo->next */
atual->next=novo; /* next de atual recebe end de novo */
atual=novo; /* ajusta atual p/ apontar para fim */
return count;
}
int imprimir() {
int count=0;
printf("\nImprimindo lista: ");
atual=head;
if (atual == (struct node *)NULL) {
printf("Lista vazia.\n");
return 0;
}
do {
count++;
printf(" %c ",atual->data);
atual=atual->next;
} while (atual != (struct node *)NULL);
return count;
}
int deletar(char letra) {
int count=0;
/* percorre lista ate o final ou até encontrar letra */
atual=head;
if (atual == (struct node *)NULL) {
printf("Lista vazia.\n");
return 0;
}
/* testa conteudo de data - esta e 1o. no */
count=1;
if (atual->data == letra) {
/* deletar e sair */
head=atual->next;
free(atual);
return count;
}
/* letra procurada não esta no 1o. no */
do {
count++;
/* elemento ainda não encontrado */
/* salva anterior e avanca para proximo no */
anterior=atual;
atual=atual->next;
/* testa conteudo de data */
if (atual->data == letra) {
/* deletar e sair */
anterior->next=atual->next;
free(atual);
return count;
}
} while (atual != (struct node *)NULL);
/* atingimos final da lista não vazia */
/* elemento não encontrado */
printf("\nElemento não encontrado.");
return count;
}
int erase() {
atual=head;
if (atual == (struct node *)NULL) {
printf("Lista vazia.\n");
return 0;
}
/* testa next e deleta */
while(atual->next != (struct node *)NULL ) {
/* deletar e sair */
head=atual->next;
free(atual);
atual=head;
}
head=(struct node *)NULL;
free(atual);
free(novo);
}
main() {
clrscr();
printf("Lista com inclusao ao final\n");
criar();
incluir_fim('a');
imprimir();
incluir_fim('b');
incluir_fim('c');
incluir_fim('d');
imprimir();
deletar('d');
imprimir();
erase();
imprimir();
printf("\n\n");
printf("Lista com inclusao no inicio\n");
criar();
incluir_inicio('a');
imprimir();
incluir_inicio('b');
incluir_inicio('c');
incluir_inicio('d');
imprimir();
deletar('d');
imprimir();
erase();
imprimir();
getch();
}
Editado por Lukas CoutoLink para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.