Ir para conteúdo
Fórum Script Brasil

jrsilvamg

Membros
  • Total de itens

    37
  • Registro em

  • Última visita

Posts postados por jrsilvamg

  1. 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. 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;
                        }

  3. 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

  4. 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

  5. #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;
    }

  6. #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

  7. fala galera, tudo bom? to garrado em dois problemas aq.. alguém pode me ajudar?

    1- receber do teclado o nome de 3 pessoas (40letras) e ordenar em ordem alfabetica.

    2- esse e tipo, fazer um prog que receba do teclado um pais e que mostre a capital na tela..

    comecei a fazer o primeiro, mas to travado aq, alguém me ajuda?

    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.

  8. 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

  9. Boa noite pessoal.

    Tenho a seguinte duvida, quero saber se existe a possibilidade de transformar um valor float em 2 inteiros.

    ex: O valor digitado foi 2.1

    printf("\DIGITE VALOR");
            scanf("%f",&x);
    
    [ AQUI INSERIR ALGUMA FUNÇÃO PARA  SEPARAR O 2.1 para 2 variaveis A e B]
    
    teste = ( teste + bla[A].bla[B].bla );
    Eu quero pegar o valor 2.1 e jogar o 2 pra [A] e o 1 pro . isso é possivel ? OBRIGADO PELA ATENÇÃO !!!
    #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");
    }

  10. Como posso colocar uma char string[4] em ordem alfabetica?

    exemplo

    string.nome[0]="Daniel"

    string.nome[1]="Alex"

    string.nome[2]="Manoel"

    string.nome[3]="Caio"

    fica desse jeito:

    string.nome[0]="Alex"

    string.nome[1]="Caio"

    string.nome[2]="Daniel"

    string.nome[3]="Manoel"

    organizar desse tipo.

    usando um

    for(i=0;i<=4;i++) {
       if(string[i].nome[0]>string[i+1].nome[0]) {
         strcopy(aux, string[i].nome);
         strcopy(string[i].nome, string[i+1].nome);
         strcopy(string[i+1].nome, aux);
       }
    }
    mas não ordena por completo
    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");
    }

  11. Olá a todos,

    Estou tentando usar um for para armazenar um determinado número de espaços na variável espacos, por exemplo armazenar 16 espaços nela assim " " mas dá erro quando o programa chega nesse for e fecha. O erro ocorre no for que deixei comentado. Agradeço qualquer ajuda. Segue o trecho do código:

    char* concatena(char* texto,int tam){
         int numespacos;
         numespacos = 20 - tam;
         char* espacos = "";
         /*for(int i=0; i<numespacos; i++){
             strcat(espacos, " ");
         }*/
         strcat(texto, espacos);
         return texto;
    }
    
    void disponiveisParaEmprestimo(){
         system ("cls");
         cout<<"Nome do livro   |   "<<"Autor   |   "<<"Disponiveis para emprestimo"<<endl;
         for(int i=0; i<nl;i++){
           cout<< concatena(l[i].nome, strlen(l[i].nome))<<l[i].autor<<" "<<l[i].exemplares - l[i].emprestados<<endl;
         }
    }

    for(int i=0; i<nl;i++)

    você declarou o nl?

    porque eu não vi nesta parte do codigo o nl sendo declarado.

  12. estou com duvidas em fazer um algoritmo sobre a dupla sena.

    o exercício diz o seguinte

    escreva um programa que simule a geração de 5mil cartões da dupla sena com jogo de 7 numeros (numeros aleatórios compreendido de 1 a 50)

    o programa deve executar o sorteio do jogo indicando os cartões premiados com 4 5 ou 6 dezenas (1 a 5mil cartões).

    deve conter os seguintes métodos

    método para gerar um cartão

    método para gerar crescentemente o cartão

    método para gerar a matriz com 5mil cartões

    método para gerar o sorteio

    método para conferir os ganhadores.

    Queria uma ajuda para poder desenvolver este programa, pois estou aprendendo e queria uma ajuda.

    se alguém poder me ajudar fico grato.

    ainda tentei fazer mas não saiu muito bom o programa não sai nada. na hora de executar aparece apenas para aperta enter para sair.

    fiz com o dev-c++

    CODE

    #include<iostream>
    using namespace std;
    int main(){
        
    int l=5000,c=9,g=0;
    int m[l][c],s[8];
    srand(time(NULL));
    for (int i=0;i<l;i++) {
        for (int j=0;j<8;j++) {
         m[i][j]=rand()%50+1;
            }
        }
        for (int i=0;i<8;i++){
            s[i]=rand()%50+1;
            }
    for(int i=0;i<l;i++){
             for( int k=0;k<8;k++) {
                  if (m[i][k]==s[k]){
                  g==g+1;
                  }
             }
             m[i][8]=g;
    }
        for (int i=0;i<l;i++) {
                if (m[i][8]>=4) {
            cout<<"A Cartela de numero"<<i+1<<"acertou"<<m[i][8]<<"numeros"<<'\n';
            }
    }
    system("pause");
    }
    meu pensamento foi o seguinte fazer uma matriz com 5mil linhas e 8 colunas. nas 7 colunas de cada linha deixaria os numeros de cada cartão e a oitava coluna deixei em 0 para futuramente armazenar o numeros acertados em relação ao sorteio. e mostraria as cartelas que acertaram mais que quatro numeros. <=4 tentei fazer mas não funcionou queria uma ajuda e se possível a implementação correta deste exercício. Meu Algoritmo é Fail As cartelas do jogo podem dar numeros iguais ele só esta mostrando as cartelas de 4700 a 5000 ta mostrando numeros muito grande ao invés de mostra numeros somente quantos numeros acertou e qual cartela acertou queria que alguém pudesse resolver isso para mim ou me ajudar ou algo do tipo. É a Segunda Vez que posto e ainda não consegui resolver. Obrigado
    Você nem alterou o que o Willian te indicou. você deve usar apenas um = para que o g recebe o valor d g+1
    ele só esta mostrando as cartelas de 4700 a 5000
    Isto é do próprio C ele tem um limite para mostrar na tela. Você pode salvar este arquivo em txt e depois abrir e ver Eu fiz um programa parecido com o seu mais foi pra LotoFacil onde ele imprime todos os cartões (caso você queria). mais tem uma funcao que retira os cartoes que tem numeros em sequencia, onde você pode limitar as sequencia. Mais o programa é em C
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[])
    {
      int y, r1, r2, pts;
      int n[15]; //matriz onde fica os numeros possiveis para marcar os cartoes
      int r[15] = { 1, 2, 4, 6, 7, 12, 13, 14, 17, 18, 20, 22, 23, 24, 25};    // resultado para conferir
      int c = 1, c1 = 1, i,  pts15 = 0, pts14 = 0, pts13 = 0, pts12 = 0 , pts11 = 0; //alguns contadores e resultados com 15, 14, 13, 12, 11 pontos
      
          for (n[0 ]= 1    ; n[0 ]<12; n[0 ]++)
           for (n[1 ]= n[0 ]+1; n[1 ]<13; n[1 ]++)
            for (n[2 ]= n[1 ]+1; n[2 ]<14; n[2 ]++)
             for (n[3 ]= n[2 ]+1; n[3 ]<15; n[3 ]++)
              for (n[4 ]= n[3 ]+1; n[4 ]<16; n[4 ]++)
               for (n[5 ]= n[4 ]+1; n[5 ]<17; n[5 ]++)
                for (n[6 ]= n[5 ]+1; n[6 ]<18; n[6 ]++)
                 for (n[7 ]= n[6 ]+1; n[7 ]<19; n[7 ]++)
                  for (n[8 ]= n[7 ]+1; n[8 ]<20; n[8 ]++)
                   for (n[9 ]= n[8 ]+1; n[9 ]<21; n[9 ]++)
                    for (n[10]= n[9 ]+1; n[10]<22; n[10]++)
                     for (n[11]= n[10]+1; n[11]<23; n[11]++)
                      for (n[12]= n[11]+1; n[12]<24; n[12]++)
                       for (n[13]= n[12]+1; n[13]<25; n[13]++)
                        for (n[14]= n[13]+1; n[14]<26; n[14]++)
          {
              y = verificaSequencia(n);
              if (y == 1){
                               for (i = 0; i < 15; i++) printf("%d-", n[i]); 
                               printf(" [%d]\n", c);
                               c++;  
                              
                              pts = 0;
                              
                              for (r1 = 0; r1 < 15; r1++){
                                  for(r2 = 0; r2 < 15; r2++){
                                         if (n[r1] == r[r2]) pts++;
                                  }
                              }
                              if ( pts == 15 ) pts15++;
                              if ( pts == 14 ) pts14++;
                              if ( pts == 13 ) pts13++;
                              if ( pts == 12 ) pts12++;
                              if ( pts == 11 ) pts11++;  
                 }
              
          }
          
          printf("15 [%d] - 14 [%d] - 13 [%d] - 12 [%d] - 11 [%d]\n", pts15, pts14, pts13, pts12, pts11);
          printf("Premio Total %d\n", pts=(pts11*2.5+pts12*5+pts13*12.5));
    
      system("PAUSE");    
      return 0;
    }
    //Verificador de sequencia de numero
    /*
    Verifica se o cartao existe um sequencia de numero 
    Ex.: v = 3 se o cartao tiver uma sequencia de 3 numeros ele não vai ser impresso
    [1 - 2 - 3] sequencia não imprime
    [1 - 2 - 4] não tem sequencia cartao impresso na tela
    */
    int verificaSequencia(int n[]){
        
        int v = 3, qtdverificacao, j, i = 0, seq, x;
        
        qtdverificacao = (15 - v)+1;
        
        x = (i+v-1);
        
        for (j = 0; j < qtdverificacao; j++){
            seq = 0;
            for (i; i < x; i++){
                if (n[i+1] == n[i]+1)seq++;
            }
            
            if(seq == v-1) return 0;
            
            i = j+1;
            x++;
            //system("Pause");
        }
        
        return 1;
    }

    Espero q ajude.

    Qualquer duvida sobre o codigo pode postar ai que lhe explico.

  13. 1) Criar 3 vetores A e B (int 10) e C (int 20)

    Criando os vetores

    int a[10];

    int b[10];

    int c[20];

    a) Preencher o vetor A com valores distintos;

    for (i=0; 1 < 10; i++){

    printf("Digite o numero A[%d]: ")

    scanf("%d", &i);

    }

    B) Preencher o vetor B com valores distintos;

    for (i=0; i < 10; i++){

    printf("Digite o numero B[%d]: ")

    scanf("%d", &i);

    }

    c) Contar a quantidade de conflitos (valores iguais) entre A e B;

    for(i=0; i<10; i++)

    for(j =0; j<10; j++){

    if(a == b[j])

    cont++;

    }

    printf("Quantidade de conflitos e = %d\n", cont);

    d) Copiar o A e B no C;

    for(i=0; i<10; i++)

    c = a;

    for(i=10, j=0; j<10; i++, j++)

    c = b[j];

  14. Boa Tarde pessoal, comecei a fazer programações recentemente e sou leigo em determinados assuntos portanto gostaria que se possivel me tirassem uma duvida: após fazer um programa em C (através do dev c++) eu consigo executalo em um celular, ou tenho que copila-lo para JAVA, se sim qual o nome deste copilador e eu consigo executa-lo em qualquer tipo de celular ou só em determinados tipos?

    Obrigado desde já e fico aguardando um retorno.

    Para trabalhar com JAVA você vai precisar:

    JDK - Maquina Virtual Java

    NetBeans ou Eclipse - Compilador

    Este programas você vai precisar se for trabalhar com JAVA

    MySQL - banco de dados

    IReport - gerar relatorios

    DBDesigner - Visualização e criação de banco de dados

    o Forum Script Brasil tem uma parte sobre java tmb

    e tmb o javafree.uol.com.br

  15. ola!

    Estou tendo problemas com a compilação, já tentei de toda a forma mas não estou conseguindo.

    Quero q o programa pare depois q for executado para ver o resultado. Uso a sintaxe system ("pause"); mas não dá certo. :blush: :blush: :blush: :blush: :blush:

    Posta o código para que possamos ajudar.

  16. #include <stdio.h>
    #include <stdlib.h>
    
    #define TAMANHO 5 // e qtd de remedio que deseja inserir no struct
    
    typedef struct registro{
        int code;
        char nome[50];
        char unidade[50];
        int quant;
        float preço;
    }remedeio;
    
    remedeio remedio[TAMANHO]; //Não sei porque desse ED2=VETOR e o que tem a ver com o ED1
                               //declara seu struct como um vetor
    
    int main(int argc, char *argv[]){
        int opcao1, opcao2, i, codigo;
        
        //Remedios com o codigo -1 não existem
        for (i = 0; i < TAMANHO; i++)
            remedio[i].code = -1; 
        
        do{
            //Opcoes para o programa
            system("cls");
            printf("1 -> Inserir\n");
            printf("2 -> Excluir\n");
            printf("3 -> Alterar\n");
            printf("4 -> Consultar\n");
            printf("5 -> Sair\n\n");
            
            printf("Escolha uma da opcao: ");
            scanf("%d", &opcao1);
            
            
            switch (opcao1){
                   case 1: // Inseri
                        printf("Inserir\n");
                        for (i = 0; i < TAMANHO; i++){
                            if (remedio[i].code == -1){
                               printf("\n----Remedio------\n");
                               printf("Code: %d\n", i);
                               remedio[i].code = i;
                               printf("Nome: ");
                               scanf("%s", &remedio[i].nome);
                               printf("Unidade: ");
                               scanf("%s", &remedio[i].unidade);
                               printf("Qtd: ");
                               scanf("%d", &remedio[i].quant);
                               printf("preço: ");
                               scanf("%f", &remedio[i].preço);
                            break;
                            }
                        } 
                        system("Pause");
                        break;
                   case 2: // Exclui
                        printf("Excluir\n");
                        printf("Excluir o codigo: ");
                        scanf("%d", &codigo);
                        remedio[codigo].code = -1; // o codigo -1 significa que o remedio não existe
                        system("Pause");
                        break;
                   case 3: // Altera
                        printf("Alterar\n");
                        printf("Digite o codigo para alterar: ");
                        scanf("%d", &codigo);
                        
                        printf("Code: %d\n", codigo);
                        
                        printf("Nome: %s\n", remedio[codigo].nome);
                        printf("Alterar o nome(1= Sim - 2= não): ");
                        scanf("%d", &i);
                        if (i == 1){
                           printf("Digite o novo nome: ");
                           scanf("%s", &remedio[codigo].nome);
                           }
                           
                        printf("Unidade: %s\n", remedio[codigo].unidade);
                        printf("Alterar a unidade(1= Sim - 2= não): ");
                        scanf("%d", &i);
                        if (i == 1){
                           printf("Digite a nova unidade: ");
                           scanf("%s", &remedio[codigo].unidade);
                           }
                         
                        printf("Qtd: %d\n", remedio[codigo].quant);
                        printf("Alterar o qtd(1= Sim - 2= não): ");
                        scanf("%d", &i);
                        if (i == 1){
                           printf("Digite a nova qtd: ");
                           scanf("%d", &remedio[codigo].quant);
                           }
                           
                        printf("preço: %.2f\n", remedio[codigo].preço);
                        printf("Alterar o preço(1= Sim - 2= não): ");
                        scanf("%d", &i);
                        if (i == 1){
                           printf("Digite o novo preço: ");
                           scanf("%f", &remedio[codigo].preço);
                           }
    
                        system("Pause");
                        break;
                   case 4: // Consulta
                        printf("Consultar\n");
                        printf("1 -> Consultar toda a Lista de Remedio:\n");
                        printf("2 -> Consultar por codigo:\n");
                        printf("Digite a opcao: ");
                        scanf("%d", &opcao2);
                        
                        switch (opcao2){
                               case 1:
                                    for (i = 0; i < TAMANHO; i++){
                                        if (remedio[i].code != -1){
                                                       printf("\n---- Remedio - Cod %d -----\n", remedio[i].code);
                                                       printf("Nome: %s\n", remedio[i].nome);
                                                       printf("Unidade: %s\n", remedio[i].unidade);
                                                       printf("Qtd: %d\n", remedio[i].quant);
                                                       printf("preço: %.2f\n", remedio[i].preço);
                                        }       
                                    }
                                    break;
                               case 2:
                                    printf("Digite o codigo para consultar: ");
                                    scanf("%d", &codigo);
                                    
                                    printf("\n---- Remedio - Cod %d -----\n", remedio[codigo].code);
                                    printf("Nome: %s\n", remedio[codigo].nome);
                                    printf("Unidade: %s\n", remedio[codigo].unidade);
                                    printf("Qtd: %d\n", remedio[codigo].quant);
                                    printf("preço: %.2f\n", remedio[codigo].preço);
                                    break;
                        }
                        
                        system("Pause");
                        break;
                   case 5: // fecha
                        printf("Fecha\n\n");
                        break;
                   default:
                           printf("Opcao Invalida\n\n");
                           system("Pause");
            }
            // enquanto a opcao for diferente de 5 o programa e executado
        }while(opcao1 != 5);
    
      system("PAUSE");    
      return 0;
    }

    Espere que ajude... :rolleyes:

  17. printf("\nQual o nome do aluno numero %d?\n(Insira o primeiro e o ultimo nome)\n", nada);
             scanf("%s%s", &nome[c][c]);
    Para um string alocar 2 nomes (Nome e sobrenome) não se usa uma matriz[j] e sim matriz, pois o string é um conjunto de palavras. Exemplo:
    #include <stdio.h>
    #include <stdlib.h>
    
    
    int main(int argc, char *argv[]){
        
        char palavra[10];
        
        strcpy(palavra, "Jose Maria");
        
        printf("Nome : %s\n", palavra);
        
    
      system("PAUSE");    
      return 0;
    }

  18. alguém ai Já Implementou esse Tipo de Arvore? em C? Não consigo encontrar Nada de Implementação.

    Fico Grato se alguém tiver o Código de Inserção!

    valeu

    Hoje pela manhã acabei de ter uma aula sobre arvore binária e seu código onde consegui achar este código.

    não foi eu que fiz achei na net(google)

    Credito

    http://www.istf.com.br/showthread.php/9013...gem-C-(urgente)

    #include <stdio.h>
    #include <stdlib.h>
    #include <malloc.h>
    #define m 2
    #define mm 4
    #define reservado "cls"
    
    
    typedef int TipoChave;
    typedef struct
    {
      TipoChave Chave;
    } Registro;
    
    typedef struct Pagina_str *Apontador;
    typedef struct Pagina_str
    {
      int n;
      Registro r[mm];
      Apontador p[mm + 1];
    } Pagina;
    
    typedef Apontador TipoDicionario;
    void Inicializa(TipoDicionario *Dicionario)
    {
      *Dicionario = NULL;
    }  /* Inicializa */
    
    void Pesquisa(Registro *x, Apontador Ap)
    {
      int i;
    
      if (Ap == NULL)
      {
        printf("Erro: Registro não esta presente\n");
        getchar();
        getchar();
        return;
      }
      i = 1;
      while (i < Ap->n && x->Chave > Ap->r[i - 1].Chave)
        i++;
      if (x->Chave == Ap->r[i - 1].Chave)
      {
        *x = Ap->r[i - 1];
        return;
      }
      if (x->Chave < Ap->r[i - 1].Chave)
        Pesquisa(x, Ap->p[i - 1]);
      else
        Pesquisa(x, Ap->p[i]);
    } /* Pesquisa */
    
    void InsereNaPagina(Apontador Ap, Registro Reg, Apontador ApDir)
    {
      int k;
      int NaoAchouPosicao;
    
      k = Ap->n;
      NaoAchouPosicao = k > 0;
      while (NaoAchouPosicao)
      {
        if (Reg.Chave >= Ap->r[k - 1].Chave)
        {
          NaoAchouPosicao = 0;
          break;
        }
        Ap->r[k] = Ap->r[k - 1];
        Ap->p[k + 1] = Ap->p[k];
        k--;
        if (k < 1)
          NaoAchouPosicao = 0;
      }
      Ap->r[k] = Reg;
      Ap->p[k + 1] = ApDir;
      Ap->n++;
    }  /*InsereNaPagina*/
    
    void Ins(Registro Reg, Apontador Ap, int *Cresceu, Registro *RegRetorno, Apontador *ApRetorno)
    {
      Apontador ApTemp;
      int i, j;
    
      if (Ap == NULL)
      {
        *Cresceu = 1;
        *RegRetorno = Reg;
        *ApRetorno = NULL;
        return;
      }
      i = 1;
      while (i < Ap->n && Reg.Chave > Ap->r[i - 1].Chave)
        i++;
      if (Reg.Chave == Ap->r[i - 1].Chave)
      {
        printf(" Erro: Registro já esta presente\n");
        getchar();
        getchar();
        *Cresceu = 0;
        return;
      }
      if (Reg.Chave < Ap->r[i - 1].Chave)
        Ins(Reg, Ap->p[i - 1], Cresceu, RegRetorno, ApRetorno);
      else
        Ins(Reg, Ap->p[i], Cresceu, RegRetorno, ApRetorno);
      if (!*Cresceu)
        return;
      if (Ap->n < mm)
      {  /* Pagina tem espaco */
        InsereNaPagina(Ap, *RegRetorno, *ApRetorno);
        *Cresceu = 0;
        return;
      }
      /* Overflow: Pagina tem que ser dividida */
      ApTemp = (Apontador) malloc(sizeof(Pagina));
      ApTemp->n = 0;
      ApTemp->p[0] = NULL;
      if (i <= m + 1)
      {
        InsereNaPagina(ApTemp, Ap->r[mm - 1], Ap->p[mm]);
        Ap->n--;
        InsereNaPagina(Ap, *RegRetorno, *ApRetorno);
      }
      else
        InsereNaPagina(ApTemp, *RegRetorno, *ApRetorno);
      for (j = m + 2; j <= mm; j++)
        InsereNaPagina(ApTemp, Ap->r[j - 1], Ap->p[j]);
      Ap->n = m;
      ApTemp->p[0] = Ap->p[m + 1];
      *RegRetorno = Ap->r[m];
      *ApRetorno = ApTemp;
    }  /*Ins*/
    
    
    void Insere(Registro Reg, Apontador *Ap)
    {
      int Cresceu;
      Registro RegRetorno;
      Apontador ApRetorno;
      Apontador ApTemp;
    
      Ins(Reg, *Ap, &Cresceu, &RegRetorno, &ApRetorno);
      if (Cresceu) { /* Arvore cresce na altura pela raiz */
        ApTemp = (Apontador) malloc(sizeof(Pagina));
        ApTemp->n = 1;
        ApTemp->r[0] = RegRetorno;
        ApTemp->p[1] = ApRetorno;
        ApTemp->p[0] = *Ap;
        *Ap = ApTemp;
      }
    }  /*Insere*/
    
    void Reconstitui(Apontador ApPag, Apontador ApPai, int PosPai, int *Diminuiu)
    {
      Apontador Aux;
      int DispAux, j;
    
      if (PosPai < ApPai->n) {  /* Aux = Pagina a direita de ApPag */
        Aux = ApPai->p[PosPai + 1];
        DispAux = (Aux->n - m + 1) / 2;
        ApPag->r[ApPag->n] = ApPai->r[PosPai];
        ApPag->p[ApPag->n + 1] = Aux->p[0];
        ApPag->n++;
        if (DispAux > 0) {  /* Existe folga: transfere de Aux para ApPag */
          for (j = 1; j < DispAux; j++)
            InsereNaPagina(ApPag, Aux->r[j - 1], Aux->p[j]);
          ApPai->r[PosPai] = Aux->r[DispAux - 1];
          Aux->n -= DispAux;
          for (j = 0; j < Aux->n; j++)
            Aux->r[j] = Aux->r[j + DispAux];
          for (j = 0; j <= Aux->n; j++)
            Aux->p[j] = Aux->p[j + DispAux];
          *Diminuiu = 0;
        }
        else
        { /* Fusao: intercala Aux em ApPag e libera Aux */
          for (j = 1; j <= m; j++)
            InsereNaPagina(ApPag, Aux->r[j - 1], Aux->p[j]);
          free(Aux);
          for (j = PosPai + 1; j < ApPai->n; j++)
          {   /* Preenche vazio em ApPai */
            ApPai->r[j - 1] = ApPai->r[j];
            ApPai->p[j] = ApPai->p[j + 1];
          }
          ApPai->n--;
          if (ApPai->n >= m)
            *Diminuiu = 0;
        }
      }
      else
      { /* Aux = Pagina a esquerda de ApPag */
        Aux = ApPai->p[PosPai - 1];
        DispAux = (Aux->n - m + 1) / 2;
        for (j = ApPag->n; j >= 1; j--)
          ApPag->r[j] = ApPag->r[j - 1];
        ApPag->r[0] = ApPai->r[PosPai - 1];
        for (j = ApPag->n; j >= 0; j--)
          ApPag->p[j + 1] = ApPag->p[j];
        ApPag->n++;
        if (DispAux > 0) {  /* Existe folga: transfere de Aux para ApPag */
          for (j = 1; j < DispAux; j++)
            InsereNaPagina(ApPag, Aux->r[Aux->n - j], Aux->p[Aux->n - j + 1]);
          ApPag->p[0] = Aux->p[Aux->n - DispAux + 1];
          ApPai->r[PosPai - 1] = Aux->r[Aux->n - DispAux];
          Aux->n -= DispAux;
          *Diminuiu = 0;
        }
        else
        {  /* Fusao: intercala ApPag em Aux e libera ApPag */
          for (j = 1; j <= m; j++)
            InsereNaPagina(Aux, ApPag->r[j - 1], ApPag->p[j]);
          free(ApPag);
          ApPai->n--;
          if (ApPai->n >= m)
            *Diminuiu = 0;
        }
      }
    }  /* Reconstitui */
    
    void Antecessor(Apontador Ap, int Ind, Apontador ApPai, int *Diminuiu)
    {
      if (ApPai->p[ApPai->n] != NULL)
      {
        Antecessor(Ap, Ind, ApPai->p[ApPai->n], Diminuiu);
        if (*Diminuiu)
          Reconstitui(ApPai->p[ApPai->n], ApPai, ApPai->n, Diminuiu);
        return;
      }
      Ap->r[Ind - 1] = ApPai->r[ApPai->n - 1];
      ApPai->n--;
      *Diminuiu = ApPai->n < m;
    }  /* Antecessor */
    
    void Ret(TipoChave Ch, Apontador *Ap, int *Diminuiu)
    {
      int Ind, j;
      Apontador WITH;
    
      if (*Ap == NULL)
      {
        printf("Erro: registro não esta na arvore\n");
        getchar();
        getchar();
        *Diminuiu = 0;
        return;
      }
      WITH = *Ap;
      Ind = 1;
      while (Ind < WITH->n && Ch > WITH->r[Ind - 1].Chave)
        Ind++;
      if (Ch == WITH->r[Ind - 1].Chave)
      {
        if (WITH->p[Ind - 1] == NULL) {  /* Pagina folha */
          WITH->n--;
          *Diminuiu = WITH->n < m;
          for (j = Ind; j <= WITH->n; j++)
          {
            WITH->r[j - 1] = WITH->r[j];
            WITH->p[j] = WITH->p[j + 1];
          }
          return;
        }
        Antecessor(*Ap, Ind, WITH->p[Ind - 1], Diminuiu);
        if (*Diminuiu)
          Reconstitui(WITH->p[Ind - 1], *Ap, Ind - 1, Diminuiu);
        return;
      }
      if (Ch > WITH->r[Ind - 1].Chave)
        Ind++;
      Ret(Ch, &WITH->p[Ind - 1], Diminuiu);
      if (*Diminuiu)
        Reconstitui(WITH->p[Ind - 1], *Ap, Ind - 1, Diminuiu);
    }  /* Ret */
    
    
    void Retira(TipoChave Ch, Apontador *Ap)
    {
      int Diminuiu;
      Apontador Aux;
    
      Ret(Ch, Ap, &Diminuiu);
      if (Diminuiu && (*Ap)->n == 0) { /* Arvore diminui na altura */
        Aux = *Ap;
        *Ap = Aux->p[0];
        free(Aux);
      }
    }  /* Retira */
    
    
    void Imprime(Apontador p, int Nivel)
    {
      int i;
    
      if (p == NULL)
        return;
      for (i = 1; i <= Nivel; i++)
        printf("    ");
      for (i = 0; i < p->n; i++)
        printf("%4d", p->r[i].Chave);
      putchar('\n');
      for (i = 0; i <= p->n; i++)
        Imprime(p->p[i], Nivel + 1);
    }
    
    int main()
    {
      Apontador *arv;
      Registro reg;
      char tecla;
      system(reservado);
      arv=(Apontador*) malloc(sizeof(Apontador));
      Inicializa(arv);
      system(reservado);
      printf("MENU DE OPCOES\n");
      printf("--------------\n");
      while(1)
      {
        system(reservado);
        printf("MENU DE OPCOES\n");
        printf("--------------\n");
        printf("1. Insere\n");
        printf("2. Remocao\n");
        printf("3. Visualizar\n");
    //    printf("4. Pesquisa\n");
        printf("5. Sair\n");
        printf("--> ");
        scanf("%c", &tecla);
        if (tecla=='5')
          break;
        switch(tecla)
        {
          case '1':
            while(1)
            {
               system(reservado);
               printf("INSERCAO\n");
               printf("--------\n");
               printf("Digite o valor da chave a ser inserida: (999 para finalizar)\n--> ");
               scanf("%d", &reg.Chave);
               if (reg.Chave==999)
                 break;
               Insere(reg, arv);
             }
          break;
          case '2':
            while(1)
            {
               system(reservado);
               printf("REMOCAO\n");
               printf("-------\n");
               printf("Digite o valor da chave a ser removida: (999 para finalizar)\n--> ");
               scanf("%d", &reg.Chave);
               if (reg.Chave==999)
                 break;
               Retira(reg.Chave, arv);
             }
          break;
          case '3':
            system(reservado);
            printf("IMPRESSAO\n");
            printf("---------\n");
            Imprime(*arv, mm);
            getchar();
            getchar();
          break;
        }
      }
      getchar();
    }

×
×
  • Criar Novo...