Ir ao conteúdo

codigo não compila no dev c


Arthur2010

Posts recomendados

Postado

Bom galera, achei um código de árvore binária na net, porém ele não compila no dev c 4.9.9.2, ja no codeblocks ele vai que é uma beleza :P

ai vocês devem estar se perguntando:"porque esse bobo quer usar o dev c podendo usar o codebloks?"

Eu respondo: É porque na minha faculdade é usado SOMENTE o dev c.. então vou ter que me adaptar com ele de qualquer jeito =/

aqui ta o código:


#include<stdio.h>
#include<conio.h>

main(){
int arvore[21];
int i,j,aux;
int resp,troca,busca;

//enche o vetor para testar o menu e permitir que o usuario visualize mesmo sem ter inserido
for (i = 0; i<21; i++){
arvore[i] = 0;
}
// cabecalho
printf("\n_______________________________________________________________________________\n");
printf("|\tPrograma Desenvolvido Para Finalidade Academica\t\t\t |\n");
printf("|\tUtilizando-se plataforma Windows\t\t\t\t |\n");
printf("|\tFerramenta Utilizada: Dev - C ++\t\t\t\t |\n");
printf("|\tDesenvolvedor: Vinicius da Silva Barbosa\t\t\t |\n");
printf("|\tGraduando do curso de Sistemas de Informacao - FAVALE\t\t |\n");
printf("|\tCarangola, MG - Outubro/2009\t\t\t\t\t |\n");
printf("_______________________________________________________________________________\n");
printf("\n\t Desenvolveremos uma arvore binaria numerica com 21 posições\n");

//laco condicional para repeticao do menu
while (resp != 0){
printf("\n_______________________________________________________________________________\n\n");
printf("\t\t\t|--------->MENU<-----------|");
printf("\n\t\t\t|__________________________|\n");
printf("\t\t\t| 1 - Inserir numeros |\n");
printf("\t\t\t| 2 - Exibir e ordenar |\n");
printf("\t\t\t| 3 - Exibir arvore |\n");
printf("\t\t\t| 4 - Editar numeros |\n");
printf("\t\t\t| 5 - Editar nos/arvore |\n");
printf("\t\t\t| 6 - Pesquisa binaria |\n");
printf("\t\t\t| 7 - Sair |");
printf("\n\t\t\t|__________________________|\n");
printf("\t\t\t\n\t\t\t Agora, entre com sua opcao: \a");
scanf("%d",&resp);

// executa as funçoes do menu
switch(resp){

//insere numeros
case 1:
system("cls");
printf("\n_______________________________________________________________________________\n");
printf(" -->>voce escolheu inserir numeros, siga as instrucoes abaixo");
printf("\n_______________________________________________________________________________\n\n");
printf(" -->>ENTRE COM OS VALORES PARA AS RESPECTIVAS posições\n\n");
for (i=0; i<21; i++){
printf("\t\tPosicao %d : ",i+1);
scanf("%d",&arvore[i]);
}
printf("\n\n -->>voce inseriu 21 numeros!");
printf("\n_______________________________________________________________________________\n\n");

break;

//exibe os numeros em ordem crescente
case 2:
system("cls");
printf("\n_______________________________________________________________________________\n");
printf(" -->>voce escolheu exibir os numeros inseridos");
printf("\n_______________________________________________________________________________\n\n");
printf(" -->>CONFIRA!\n\n");
for(i=0; i<20; i++){
for(j=i+1; j<21; j++){
if (arvore[i] > arvore[j]){
troca = arvore[i];
arvore[i] = arvore[j];
arvore[j] = troca;
}
}
}
for (i=0; i<21; i++){
printf("\n\t -->> POSICAO %d = %d",i,arvore[i]);
}
printf("\n\n -->>voce visualizou os 21 numeros!");
printf("\n_______________________________________________________________________________\n\n");
break;

//exibe os numeros em forma de arvore com seus nos
case 3:
system("cls");
printf("\n_______________________________________________________________________________\n");
printf(" -->>voce escolheu visualizar a arvore");
printf("\n_______________________________________________________________________________\n\n");
printf(" -->>VEJA OS NOS INTERMEDIARIOS DA ARVORE!\n\n");
// altura 0
printf("\t\t\t\t =%d\t\t\t\n",arvore[10]); // posicao 10
printf("\t\t\t\t|___|\t\t\t\n"); // linha posicao 10
printf("\t\t\t\t 1 \t\t\t\n\n\n\n");// linha posicao 10
// altura 1
printf("\t\t =%d\t",arvore[3]); // posicao 3
if(arvore[3]>9){
printf("\t =%d\t\n",arvore[17]); // posicao 17 maior que 9
}
else
printf("\t\t =%d\t\n",arvore[17]); // posicao 17 menor que 10
printf("\t\t |___|\t"); // linha posicao 3
printf("\t |___|\t\n"); // linha posicao 17
printf("\t\t 2 \t"); // linha posicao 3
printf("\t 5 \t\n\n\n"); // linha posicao 17
// altura 2
printf("\t =%d",arvore[2]);// posicao 2
printf("\t =%d",arvore[5]);// posicao 5
printf("\t =%d",arvore[15]); // posicao 15
printf("\t =%d\t\n",arvore[18]); // posicao 18
printf("\t |___|");// linha posicao 2
printf("\t |___|");// linha posicao 5
printf("\t |___|"); // linha posicao 15
printf("\t |___|\t\n"); // linha posicao 18
printf("\t 3 ");// linha posicao 2
printf("\t 4 ");// linha posicao 5
printf("\t 6 "); // linha posicao 15
printf("\t 7 \t"); // linha posicao 18
printf("\n\n");
printf("\n\n -->>ARVORE BINARIA!");
printf("\n_______________________________________________________________________________\n\n");
break;

//edita os numeros do vetor
case 4:
system("cls");
printf("\n_______________________________________________________________________________\n");
printf(" -->>voce escolheu editar os numeros do vetor, siga as instrucoes abaixo");
printf("\n_______________________________________________________________________________\n\n");
printf(" -->>VEJA OS NUMEROS INSERIDOS\n\n");
for (i=0; i<21; i++){
printf("\n\t -->> POSICAO %d = %d",i,arvore[i]);
}
printf("\n\n -->>AGORA, INFORME A POSICAO A SER EDITADA\n\n");
scanf("%d",&i);
printf("\n\n -->>EDITE A POSICAO %d, ENTRE COM O NOVO VALOR : ",i);
scanf("%d",&arvore[i]);
printf("\n\n -->>ALTERADO COM SUCESSO!");
printf("\n_______________________________________________________________________________\n\n");
break;

//edita os nos da arvore
case 5:
system("cls");
printf("\n_______________________________________________________________________________\n");
printf(" -->>voce escolheu editar os nos da arvore, siga as instrucoes abaixo");
printf("\n_______________________________________________________________________________\n\n");
printf(" -->>VEJA OS NUMEROS EXISTENTES\n\n");
for (i=0; i<21; i++){
printf("\n\t -->> POSICAO %d = %d",i,arvore[i]);
}
printf("\n\n -->>VEJA OS NOS DA ARVORE\n\n");
// altura 0
printf("\t\t\t\t =%d\t\t\t\n",arvore[10]); // posicao 10
printf("\t\t\t\t|___|\t\t\t\n"); // linha posicao 10
printf("\t\t\t\t 1 \t\t\t\n\n\n\n");// linha posicao 10
// altura 1
printf("\t\t =%d\t",arvore[3]); // posicao 3
if(arvore[3]>9){
printf("\t =%d\t\n",arvore[17]); // posicao 17 maior que 9
}
else
printf("\t\t =%d\t\n",arvore[17]); // posicao 17 menor que 10
printf("\t\t |___|\t"); // linha posicao 3
printf("\t |___|\t\n"); // linha posicao 17
printf("\t\t 2 \t"); // linha posicao 3
printf("\t 5 \t\n\n\n"); // linha posicao 17
// altura 2
printf("\t =%d",arvore[2]);// posicao 2
printf("\t =%d",arvore[5]);// posicao 5
printf("\t =%d",arvore[15]); // posicao 15
printf("\t =%d\t\n",arvore[18]); // posicao 18
printf("\t |___|");// linha posicao 2
printf("\t |___|");// linha posicao 5
printf("\t |___|"); // linha posicao 15
printf("\t |___|\t\n"); // linha posicao 18
printf("\t 3 ");// linha posicao 2
printf("\t 4 ");// linha posicao 5
printf("\t 6 "); // linha posicao 15
printf("\t 7 \t"); // linha posicao 18
printf("\n\n");
printf("\n\n -->>AGORA, INFORME O NO A SER EDITADO\n\n");
scanf("%d",&i);
aux = i;
switch (i){
case 1: i=10;
break;
case 2: i=3;
break;
case 3: i=2;
break;
case 4: i=5;
break;
case 5: i=17;
break;
case 6: i=15;
break;
case 7: i=18;
break;
}

printf("\n\n -->>EDITE O NO %d, ENTRE COM O NOVO VALOR : ",aux);
scanf("%d",&arvore[i]);
printf("\n\n -->>ALTERADO COM SUCESSO!");
printf("\n\n -->>APOS ESCOLHER A OPCAO 2 OS NOS SERAO REORGANIZADOS!");
printf("\n_______________________________________________________________________________\n\n");
break;

//pesquisa na arvore binaria
case 6:
system("cls");
printf("\n_______________________________________________________________________________\n");
printf(" -->>voce escolheu editar os nos da arvore, siga as instrucoes abaixo");
printf("\n_______________________________________________________________________________\n\n");
printf(" -->>VEJA OS NUMEROS EXISTENTES\n\n");
for (i=0; i<21; i++){
printf("\n\t -->> POSICAO %d = %d",i,arvore[i]);
}
printf("\n\n");
printf("\n\n -->>AGORA, INFORME O NUMERO A SER BUSCADO\n\n");
scanf("%d",&busca);
//pesquisa lado direito
if(busca > arvore[10]){
for (i=11; i<21; i++){
if(busca == arvore[i]){
printf("\n\tNumero %d encontrado no lado direito na POSICAO %d .",arvore[i],i);
}
else{
printf("\n\t...Ainda nao encontrado!");
}
}
}
//pesquisa lado esquerdo
else{
if(busca < arvore[10]){
for (i=0; i<10; i++){
if(busca == arvore[i]){
printf("\n\tNumero %d encontrado no lado esquerdo na POSICAO %d .",arvore[i],i);
}
else
printf("\n\t...Ainda nao encontrado!");
}
}
//a pesquisa é o nó de altura 0
else
printf("\n\tNumero %d encontrado no topo da arvore na POSICAO %d .",arvore[10],10);
}
break;

//finaliza
case 7:
resp = 0;
system("cls");
printf("\n_______________________________________________________________________________\n");
printf(" -->>voce OPTOU POR FINALIZAR O PROGRAMA, OBRIGADO!");
printf("\n_______________________________________________________________________________\n\n\n");

}

}

system("PAUSE");
}

os erros que aparecem são:

C:\Users\...\Documents\Sem Título2.cpp In function `int main()':

45 C:\Users\...\Documents\Sem Título2.cpp `system' undeclared (first use this function)

Obrigado!

Postado

Brow, acredito que nenhum compilador no mundo irá aceitar isto :


...
scanf("%d",&resposta;
...
switch(resposta{
...

Ou adivinhar que a váriavel "resp" e a variável "resposta" são a mesma... e o pdrão C/C++ é a função main retornar um inteiro...


#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int main(){
int arvore[21];
int i,j,aux;
int resposta,troca,busca;

//enche o vetor para testar o menu e permitir que o usuario visualize mesmo sem ter inserido
for (i = 0; i<21; i++){
arvore[i] = 0;
}
// cabecalho
printf("\n_______________________________________________________________________________\n");
printf("|\tPrograma Desenvolvido Para Finalidade Academica\t\t\t |\n");
printf("|\tUtilizando-se plataforma Windows\t\t\t\t |\n");
printf("|\tFerramenta Utilizada: Dev - C ++\t\t\t\t |\n");
printf("|\tDesenvolvedor: Vinicius da Silva Barbosa\t\t\t |\n");
printf("|\tGraduando do curso de Sistemas de Informacao - FAVALE\t\t |\n");
printf("|\tCarangola, MG - Outubro/2009\t\t\t\t\t |\n");
printf("_______________________________________________________________________________\n");
printf("\n\t Desenvolveremos uma arvore binaria numerica com 21 posições\n");

//laco condicional para repeticao do menu
while (resposta!= 0){
printf("\n_______________________________________________________________________________\n\n");
printf("\t\t\t|--------->MENU<-----------|");
printf("\n\t\t\t|__________________________|\n");
printf("\t\t\t| 1 - Inserir numeros |\n");
printf("\t\t\t| 2 - Exibir e ordenar |\n");
printf("\t\t\t| 3 - Exibir arvore |\n");
printf("\t\t\t| 4 - Editar numeros |\n");
printf("\t\t\t| 5 - Editar nos/arvore |\n");
printf("\t\t\t| 6 - Pesquisa binaria |\n");
printf("\t\t\t| 7 - Sair |");
printf("\n\t\t\t|__________________________|\n");
printf("\t\t\t\n\t\t\t Agora, entre com sua opcao: \a");
scanf("%d",&resposta);

// executa as funções do menu
switch(resposta){

//insere numeros
case 1:
system("cls");
printf("\n_______________________________________________________________________________\n");
printf(" -->>voce escolheu inserir numeros, siga as instrucoes abaixo");
printf("\n_______________________________________________________________________________\n\n");
printf(" -->>ENTRE COM OS VALORES PARA AS RESPECTIVAS posições\n\n");
for (i=0; i<21; i++){
printf("\t\tPosicao %d : ",i+1);
scanf("%d",&arvore[i]);
}
printf("\n\n -->>voce inseriu 21 numeros!");
printf("\n_______________________________________________________________________________\n\n");

break;

//exibe os numeros em ordem crescente
case 2:
system("cls");
printf("\n_______________________________________________________________________________\n");
printf(" -->>voce escolheu exibir os numeros inseridos");
printf("\n_______________________________________________________________________________\n\n");
printf(" -->>CONFIRA!\n\n");
for(i=0; i<20; i++){
for(j=i+1; j<21; j++){
if (arvore[i] > arvore[j]){
troca = arvore[i];
arvore[i] = arvore[j];
arvore[j] = troca;
}
}
}
for (i=0; i<21; i++){
printf("\n\t -->> POSICAO %d = %d",i,arvore[i]);
}
printf("\n\n -->>voce visualizou os 21 numeros!");
printf("\n_______________________________________________________________________________\n\n");
break;

//exibe os numeros em forma de arvore com seus nos
case 3:
system("cls");
printf("\n_______________________________________________________________________________\n");
printf(" -->>voce escolheu visualizar a arvore");
printf("\n_______________________________________________________________________________\n\n");
printf(" -->>VEJA OS NOS INTERMEDIARIOS DA ARVORE!\n\n");
// altura 0
printf("\t\t\t\t =%d\t\t\t\n",arvore[10]); // posicao 10
printf("\t\t\t\t|___|\t\t\t\n"); // linha posicao 10
printf("\t\t\t\t 1 \t\t\t\n\n\n\n");// linha posicao 10
// altura 1
printf("\t\t =%d\t",arvore[3]); // posicao 3
if(arvore[3]>9){
printf("\t =%d\t\n",arvore[17]); // posicao 17 maior que 9
}
else
printf("\t\t =%d\t\n",arvore[17]); // posicao 17 menor que 10
printf("\t\t |___|\t"); // linha posicao 3
printf("\t |___|\t\n"); // linha posicao 17
printf("\t\t 2 \t"); // linha posicao 3
printf("\t 5 \t\n\n\n"); // linha posicao 17
// altura 2
printf("\t =%d",arvore[2]);// posicao 2
printf("\t =%d",arvore[5]);// posicao 5
printf("\t =%d",arvore[15]); // posicao 15
printf("\t =%d\t\n",arvore[18]); // posicao 18
printf("\t |___|");// linha posicao 2
printf("\t |___|");// linha posicao 5
printf("\t |___|"); // linha posicao 15
printf("\t |___|\t\n"); // linha posicao 18
printf("\t 3 ");// linha posicao 2
printf("\t 4 ");// linha posicao 5
printf("\t 6 "); // linha posicao 15
printf("\t 7 \t"); // linha posicao 18
printf("\n\n");
printf("\n\n -->>ARVORE BINARIA!");
printf("\n_______________________________________________________________________________\n\n");
break;

//edita os numeros do vetor
case 4:
system("cls");
printf("\n_______________________________________________________________________________\n");
printf(" -->>voce escolheu editar os numeros do vetor, siga as instrucoes abaixo");
printf("\n_______________________________________________________________________________\n\n");
printf(" -->>VEJA OS NUMEROS INSERIDOS\n\n");
for (i=0; i<21; i++){
printf("\n\t -->> POSICAO %d = %d",i,arvore[i]);
}
printf("\n\n -->>AGORA, INFORME A POSICAO A SER EDITADA\n\n");
scanf("%d",&i);
printf("\n\n -->>EDITE A POSICAO %d, ENTRE COM O NOVO VALOR : ",i);
scanf("%d",&arvore[i]);
printf("\n\n -->>ALTERADO COM SUCESSO!");
printf("\n_______________________________________________________________________________\n\n");
break;

//edita os nos da arvore
case 5:
system("cls");
printf("\n_______________________________________________________________________________\n");
printf(" -->>voce escolheu editar os nos da arvore, siga as instrucoes abaixo");
printf("\n_______________________________________________________________________________\n\n");
printf(" -->>VEJA OS NUMEROS EXISTENTES\n\n");
for (i=0; i<21; i++){
printf("\n\t -->> POSICAO %d = %d",i,arvore[i]);
}
printf("\n\n -->>VEJA OS NOS DA ARVORE\n\n");
// altura 0
printf("\t\t\t\t =%d\t\t\t\n",arvore[10]); // posicao 10
printf("\t\t\t\t|___|\t\t\t\n"); // linha posicao 10
printf("\t\t\t\t 1 \t\t\t\n\n\n\n");// linha posicao 10
// altura 1
printf("\t\t =%d\t",arvore[3]); // posicao 3
if(arvore[3]>9){
printf("\t =%d\t\n",arvore[17]); // posicao 17 maior que 9
}
else
printf("\t\t =%d\t\n",arvore[17]); // posicao 17 menor que 10
printf("\t\t |___|\t"); // linha posicao 3
printf("\t |___|\t\n"); // linha posicao 17
printf("\t\t 2 \t"); // linha posicao 3
printf("\t 5 \t\n\n\n"); // linha posicao 17
// altura 2
printf("\t =%d",arvore[2]);// posicao 2
printf("\t =%d",arvore[5]);// posicao 5
printf("\t =%d",arvore[15]); // posicao 15
printf("\t =%d\t\n",arvore[18]); // posicao 18
printf("\t |___|");// linha posicao 2
printf("\t |___|");// linha posicao 5
printf("\t |___|"); // linha posicao 15
printf("\t |___|\t\n"); // linha posicao 18
printf("\t 3 ");// linha posicao 2
printf("\t 4 ");// linha posicao 5
printf("\t 6 "); // linha posicao 15
printf("\t 7 \t"); // linha posicao 18
printf("\n\n");
printf("\n\n -->>AGORA, INFORME O NO A SER EDITADO\n\n");
scanf("%d",&i);
aux = i;
switch (i){
case 1: i=10;
break;
case 2: i=3;
break;
case 3: i=2;
break;
case 4: i=5;
break;
case 5: i=17;
break;
case 6: i=15;
break;
case 7: i=18;
break;
}

printf("\n\n -->>EDITE O NO %d, ENTRE COM O NOVO VALOR : ",aux);
scanf("%d",&arvore[i]);
printf("\n\n -->>ALTERADO COM SUCESSO!");
printf("\n\n -->>APOS ESCOLHER A OPCAO 2 OS NOS SERAO REORGANIZADOS!");
printf("\n_______________________________________________________________________________\n\n");
break;

//pesquisa na arvore binaria
case 6:
system("cls");
printf("\n_______________________________________________________________________________\n");
printf(" -->>voce escolheu editar os nos da arvore, siga as instrucoes abaixo");
printf("\n_______________________________________________________________________________\n\n");
printf(" -->>VEJA OS NUMEROS EXISTENTES\n\n");
for (i=0; i<21; i++){
printf("\n\t -->> POSICAO %d = %d",i,arvore[i]);
}
printf("\n\n");
printf("\n\n -->>AGORA, INFORME O NUMERO A SER BUSCADO\n\n");
scanf("%d",&busca);
//pesquisa lado direito
if(busca > arvore[10]){
for (i=11; i<21; i++){
if(busca == arvore[i]){
printf("\n\tNumero %d encontrado no lado direito na POSICAO %d .",arvore[i],i);
}
else{
printf("\n\t...Ainda nao encontrado!");
}
}
}
//pesquisa lado esquerdo
else{
if(busca < arvore[10]){
for (i=0; i<10; i++){
if(busca == arvore[i]){
printf("\n\tNumero %d encontrado no lado esquerdo na POSICAO %d .",arvore[i],i);
}
else
printf("\n\t...Ainda nao encontrado!");
}
}
//a pesquisa é o nó de altura 0
else
printf("\n\tNumero %d encontrado no topo da arvore na POSICAO %d .",arvore[10],10);
}
break;

//finaliza
case 7:
resposta= 0;
system("cls");
printf("\n_______________________________________________________________________________\n");
printf(" -->>voce OPTOU POR FINALIZAR O PROGRAMA, OBRIGADO!");
printf("\n_______________________________________________________________________________\n\n\n");
}
}
system("PAUSE");
return 0;
}

este compilou no Dev, CodeBlocks, Notepad(bloco de notas)/gcc,até no VisualC++ 2008 (com uns 15 alertas xD, por que a função scanf() que é considerada insegura, e é recomendado substituior ele pela scanf_s(), mas esta acredito que não exista nos headers do Dev ou do CodeBlocks )...

Espero que ajude, e uma dica, não se importe com qual IDE ou Compilador usar, pois se você seguir as regras não terá problemas com isto...

Espéro que ajude, falou...

Postado

Mais uma vez obrigado W_Neto! funcionou!

o estranho era q ele abria no codeblocks assim mesmo xD

por isso achei q tivesse todo certinho e fosse problema só do compilador.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!