Ir para conteúdo
Fórum Script Brasil

jrsilvamg

Membros
  • Total de itens

    37
  • Registro em

  • Última visita

Sobre jrsilvamg

Perfil

  • Gender
    Male
  • Location
    Itaúna - MG

jrsilvamg's Achievements

0

Reputação

  1. jrsilvamg

    Erro codigo C

    Como você quer pegar um nome deve se usar uma STRING(%s) e não um CHAR(%c) seu codigo #include <stdio.h> char nome; printf("\n Digite o Nome: "); scanf("%c",&nome); printf("\n Nome: %c", nome); } Correto #include <stdio.h> char nome[50]; printf("\n Digite o Nome: "); scanf("%s",&nome); printf("\n Nome: %s", nome); } Espero que ajude.
  2. E só utilizar uma laço FOR e imprimir os * acrescentado 2 a cada laço. Pode procurar ai no Forum que tem vários POST sobre este exercício. Um exemplo = http://scriptbrasil.com.br/forum/index.php...amp;hl=piramide
  3. jrsilvamg

    menus com switch

    você não está informado a variavel "ser", qual valor dela? scanf ("%c", &serv); switch (serv) { case 'a': printf ("a");break; case 'b': printf ("b");break; case 'c': printf ("c");break; case 'd': printf ("d");break; }
  4. Eu fiz um trabalho na faculdade sobre arvore B e so você adaptar para suas necessidades ai. #include <stdio.h> #include <stdlib.h> #define max 10 typedef long TipoChave; typedef struct Registro { TipoChave Chave; /* outros componentes */ } Registro; typedef struct No * Apontador; typedef struct No { Registro Reg; Apontador Esq, Dir; } No; typedef Apontador TipoDicionario; //chamadas de funcoes void Inicializa(Apontador *p); void Permut( TipoChave A[], int n); void Insere(Registro x, Apontador *p); void TestaI(No *p, int pai); void Testa(No *p); void Cabecalho(); void OrdemCrescente(No *p); void OrdemDecrescente(No *p); void ImprimeArvore(int camada, No *p); void MaiorNumero(No *p); void MenorNumero(No *p); void NoFolhas(No *p); void ProcuraNumeroDir(No *p, int numero); void ProcuraNumeroEsq(No *p, int numero); int MenuOpcao(int opcao); double rand0a1(); int main(int argc, char *argv[]){ int opcao, //variavel para indicar as opcoes p/ usuario i, //contador numero; //recebe o numero que o usuario quer inserir na arvore No *Dicionario; Registro x; TipoChave vetor[max]; srand(time(NULL)); //faz gerar números diferentes a cada execução. só precisa ser chamada UMA vez */ //inicializa o dicionario com NULL Inicializa(&Dicionario); //cria um vetor ordenado for (i = 0; i < max; i++) vetor[i] = i+1; //embaralha os numeros no vetor Permut(vetor,max-1); //insere cada chave na arvore e testa sua integridade apos cada insercao for (i = 0; i < max; i++){ x.Chave = vetor[i]; Insere(x, &Dicionario); Testa(Dicionario); } while(opcao!=0){ // enquanto o usuario não digitar 0 o programa não ira finalizar //funcao onde mostra o Menu de opcoes para usuario opcao = MenuOpcao(opcao); //imprime na tela a funcao que o usuario selecionou switch(opcao){ case 1 : { //CASE 1 = Insere um numero na arvore Cabecalho(); printf("Opcao [1] - Insere numero na arvore\n\n"); printf("Digite -1 para sair\n\n"); do{ printf("Inserir o numero: "); scanf("%d", &numero); if(numero!=-1){ x.Chave = numero; Insere(x, &Dicionario); } }while (numero!=-1); break; } case 2 : {//CASE 2 = Imprime na tela a ordem crescente da arvore Cabecalho(); printf("Opcao [2] - Imprime em ordem crescente\n\n"); OrdemCrescente(Dicionario); break; } case 3 : {//CASE 3 = Imprime na tela a ordem decrescente da arvore Cabecalho(); printf("Opcao [3] - Imprime em ordem decrescente\n\n"); OrdemDecrescente(Dicionario); break; } case 4 : {//CASE 4 = Imprime o maior numero na tela Cabecalho(); printf("Opcao [4] - Imprime do maior numero da arvore\n\n"); MaiorNumero(Dicionario); break; } case 5 : {//CASE 5 = Imprime o menor numero na tela Cabecalho(); printf("Opcao [5] - Imprime do maior numero da arvore\n\n"); MenorNumero(Dicionario); break; } case 6 : {//CASE 6 = Imprime na tela os nos folhas Cabecalho(); printf("Opcao [6] - Imprime do nos folhas\n\n"); NoFolhas(Dicionario); break; } case 7 : {//CASE 7 = Imprime na tela os numero a direita do numero informado pelo usuario Cabecalho(); printf("Opcao [7] - Imprime sub-arvore direita de um no\n\n"); printf("\n\nDigite um numero: "); scanf("%d",&numero); ProcuraNumeroDir(Dicionario, numero); break; } case 8 : {//CASE 8 = Imprime na tela os numero a esquerda do numero informado pelo usuario Cabecalho(); printf("Opcao [8]\n\n"); printf("\n\nDigite um numero: "); scanf("%d",&numero); ProcuraNumeroEsq(Dicionario, numero); break; } case 9 : {//CASE 9 = Imprime na tela a arvore binaria Cabecalho(); printf("Opcao [9] - Imprime a arvore binaria\n\n"); ImprimeArvore(0, Dicionario); break; } case 0 : {//CASE 9 = Imprime na tela a arvore binaria exit (0); break; } default : Cabecalho(); printf(">>> ERRO <<<\n"); printf("\n\nOpcao invalida.\n\n"); } printf("\nPresione ENTER para voltar ao MENU\n\n"); system("PAUSE"); } } // funcoes // Inicializa a arvore void Inicializa(Apontador *p){ *p = NULL; } double rand0a1(){ double resultado = (double) rand()/ RAND_MAX; /* Dividir pelo maior inteiro */ if(resultado>1.0) resultado = 1.0; return resultado; } // faz o embaralhamento dos numeros void Permut( TipoChave A[], int n) { int i,j; TipoChave b; for(i = n; i>0; i --){ j = (i * rand0a1()); b = A[i]; A[i] = A[j]; A[j] = b; } } // insere na arove os dados informados void Insere(Registro x, Apontador *p){ if (*p == NULL){ *p = (Apontador)malloc(sizeof(No)); (*p)->Reg = x; (*p)->Esq = NULL; (*p)->Dir = NULL; return; } if (x.Chave < (*p)->Reg.Chave){ Insere(x, &(*p)->Esq); return; } if (x.Chave > (*p)->Reg.Chave) Insere(x, &(*p)->Dir); else printf("Erro : Registro já existe na arvore\n"); } void TestaI(No *p, int pai){ if (p == NULL) return; if (p->Esq != NULL){ if (p->Reg.Chave < p->Esq->Reg.Chave){ printf("Erro: Pai %ld menor que filho a esquerda %ld\n", p->Reg.Chave, p->Esq->Reg.Chave); exit(1); } } if (p->Dir != NULL){ if (p->Reg.Chave > p->Dir->Reg.Chave){ printf("Erro: Pai %ld maior que filho a direita %ld\n", p->Reg.Chave, p->Dir->Reg.Chave); exit(1); } } TestaI(p->Esq, p->Reg.Chave); TestaI(p->Dir, p->Reg.Chave); } void Testa(No *p){ if (p != NULL) TestaI(p, p->Reg.Chave); } //-------------- Cabecalho ------------------------------------------- void Cabecalho(){ system("cls"); printf("#################################################\n"); printf("#\t\t AEDIII\t\t\t#\n"); printf("#-----------------------------------------------#\n"); printf("#\t\tArvore Binaria\t\t\t#\n"); printf("#################################################\n\n"); } //-------------- Menu de opcao ------------------------------------------- int MenuOpcao(int opcao){ Cabecalho(); printf(">> Menu - Escolha umas das opcoes abaixo\n\n"); printf("1 -> Inserir numero\n"); printf("2 -> Imprime ordem crescente\n"); printf("3 -> Imprime ordem decrescente\n"); printf("4 -> Imprime maior numero\n"); printf("5 -> Imprime menor numero\n"); printf("6 -> Imprime nos folhas\n"); printf("7 -> Imprime sub-arvore direita de um no\n"); printf("8 -> Imprime sub-arvore esquerda de um no\n"); printf("9 -> Imprime arvore\n"); printf("0 -> Finalizar o programa\n\n"); printf("Digite uma opcao: "); scanf("%d", &opcao); return opcao; } //-------------- Imprime a ordem crescente da arvore ------------------- void OrdemCrescente(No *p){ if (p == NULL) return; OrdemCrescente(p->Esq); printf("> %d\n", p->Reg.Chave); OrdemCrescente(p->Dir); } //-------------- Imprime a ordem decrescente da arvore ------------------- void OrdemDecrescente(No *p){ if (p == NULL) return; OrdemDecrescente(p->Dir); printf("> %d\n", p->Reg.Chave); OrdemDecrescente(p->Esq); } //--------------Imprime a arvore na tela --------------------------------- void ImprimeArvore(int camada, No *p){ int i; if(p == NULL) return; ImprimeArvore(camada+1, p->Dir); for(i=0;i<camada;i++) printf(" "); printf("%d\n",p->Reg.Chave); ImprimeArvore(camada+1, p->Esq); } //--------------Procura o maior numero da arvore-------------------------- void MaiorNumero(No *p){ if((p->Dir != NULL) && (p->Dir->Reg.Chave > p->Reg.Chave)) MaiorNumero(p->Dir); else printf("Maior numero encontrado foi: %d\n\n", p->Reg.Chave); } //--------------Procura o menor numero da arvore-------------------------- void MenorNumero(No* p){ if((p->Esq != NULL) && (p->Esq->Reg.Chave < p->Reg.Chave)) MenorNumero(p->Esq); else printf("Menor numero encontrado foi: %d\n\n", p->Reg.Chave); } //-----------------Procura os nos folhas da arvore------------------------ void NoFolhas(No *p){ if(p == NULL) return; NoFolhas(p->Dir); if(p->Esq == NULL && p->Dir == NULL) printf("%d\n",p->Reg.Chave); NoFolhas(p->Esq); } //--------------Procura os nos a Direita de numero selecionado------------ void ProcuraNumeroDir(No *p, int numero){ if (p == NULL) return; if (numero == p->Reg.Chave) OrdemCrescente(p->Dir); if (numero < p->Reg.Chave) return ProcuraNumeroDir(p->Esq, numero); else return ProcuraNumeroDir(p->Dir, numero); } //--------------Procura os nos a Esquerda de numero selecionado------------ void ProcuraNumeroEsq(No *p, int numero){ if (p == NULL) return; if (numero == p->Reg.Chave) OrdemDecrescente(p->Esq); if (numero < p->Reg.Chave) return ProcuraNumeroEsq(p->Esq, numero); else return ProcuraNumeroEsq(p->Dir, numero); } Espere que ajude
  5. jrsilvamg

    (Resolvido) Vetores em C

    Programas em C são executados sequencialmente uma linha de cada vez Então você precisa primeiro pegar as variáveis e depois executar os cálculos. e em seguida os resultados. #include <stdio.h> #include <stdlib.h> #include <math.h> main(){ float v[3]; float a; printf ("Escolha um valor para x:"); scanf ("%f",&v[0]); printf ("\nEscolha um valor para y:"); scanf ("%f",&v[1]); printf ("\nEscolha um valor para z:"); scanf ("%f",&v[2]); a=abs(pow(v[0],2)+pow(v[1],2)+pow(v[2],2)); printf ("\nA norma desse vetor é:%.3f",a); system("pause"); } Espere que ajude
  6. jrsilvamg

    Ajuda no SQRT

    #include <stdlib.h> #include <stdio.h> #include <string.h> int main(){ int num, res; printf("Digite Um Numero: "); scanf("%d", &num); if (num < 0 ) printf("Numero não tem rais quadrada \n"); else if (num == 0) printf("numero nulo \n"); else if (num > 0){ res = sqrt(num); printf("numero maior que zero \n"); printf("Rais quadrada: %d \n" , res); } system("pause"); return 0; }
  7. Eu fiz um jogo da velha aqui e as casa eu coloquei um numero (1-9) de acordo com a escolha do usuário eu marcava X O.
  8. jrsilvamg

    Ajuda com Vetores

    #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]){ int i, j; float media[8], n[10]; for (i=0; i<10; i++){ printf("Digite o valor: "); scanf("%f", &n[i]); } for ( j = 0; j<8; j++){ media[j] = (n[j]+n[j+1]+n[j+2])/3; printf("A %d media = %.2f\n", j, media[j]); } system("PAUSE"); return 0; } Para inserir com TAG CODEBOX utilize o ultimo icone (Localizado abaixo da FONTE) INSERIR CODE
  9. você precisa de uma matriz [i-j] [0-0][0-1][0-2] [1-0][1-1][1-2] [2-0][2-1][2-2] na diagonal i = j e só você usar dois laços FOR e um IF para resolver Ex.: for (i = 0; i < x; i++) for (j = 0; j < x; j++){ if( i == j) printf(...); else printf(...); }
  10. você precisa de ordenar qts palavras? você pode usar laço FOR para comparar todas as palavras Comparações 1 - 2 1 - 3 1 - 4 2 - 3 2 - 4 3 - 4
  11. O compilador está acusando problema nessa linha de código... O erro é Alguém sabe dizer o porque o compilador acusa tal erro? NO dev aqui funcionou beleza int hora = 10; int i=((hora-3)%1); printf("%d", i);
  12. jrsilvamg

    Ajuda em c++

    problema 01 A função strcoll(string[0], string[1]) compara uma cadeia de caracter retorna -1 string[1] vir primeiro string[0] retorna 0 string[1] for igual string[0] retorna 1 string[1] vir primeiro string[0] Exemplo de um codigo #include <stdio.h> #include <stdlib.h> int main(){ char palavra1[10] = "Pera"; char palavra2[10] = "Maca"; int retorno; retorno = strcoll(palavra2, palavra1); printf("Retorno das %s e %s = %d\n", palavra1, palavra2, retorno); retorno = strcoll(palavra1, palavra2); printf("Retorno das %s e %s = %d\n", palavra2, palavra1, retorno); retorno = strcoll(palavra1, palavra1); printf("Retorno das %s e %s = %d\n", palavra1, palavra1, retorno); system("pause"); } problema 02 são todos os pais do mundo ou só alguns? você precisa colocar no seu codigo os paises possivel e sua capital e com if ou swtich você procura o pais e informa a capital ou no arquivo txt. Espero q ajude.
  13. Primeiramente utilize as tag CODE quando for inserir código, assim fica melhor para visualizar seu código. #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]){ float maior, menor, media = 0, soma = 0; int cont = 0; do{ system("cls"); printf("Digite sua media: "); scanf("%f",&media); //finaliza o programa de o valor digitado for negativo if (media < 0){ printf("Programa finalizado\n"); system("PAUSE"); break; } //inicializa os valores maior e menor if (cont == 0){ maior = media; menor = media; } //verifica se valor e maior ou menor if(maior <= media){ maior = media; cont++; } else if( menor > media){ menor = media; cont++; } //faz a media soma += media; media = soma/cont; //imprime os resultados printf("Maior media = %.2f\n", maior); printf("Menor media = %.2f\n", menor); printf("Media = %.2f\n", media); system("PAUSE"); }while (1); } Espero que ajude
  14. #include <stdio.h> #include <stdlib.h> int main(){ float num = 2.1; int num2; num2 = num; // variavel inteira somente recebe valor inteiro num = num - num2; // valor inteiro menos o valor decimal resulta em somente a parte decimal printf("Valor Inteiro %d\n", num2); printf("Valor Decimal %f\n", num); system("pause"); }
×
×
  • Criar Novo...