Ir ao conteúdo
  • Cadastre-se

Liliane Barboza

Membro Júnior
  • Posts

    16
  • Cadastrado em

  • Última visita

posts postados por Liliane Barboza

  1. Função em C que copia Apenas o 1º caracter de cada palavra da string em um vetor ,utilizando ponteiro,e depois mostra, a partir desse vetor de endereço, as palavras inteiras.

    Exemplo: string s=aprendendo programar , vetor=//endereço de A e endereço de P , 

    para guardar endereço da 1ºletra  ok,até tentei rsrs, mas depois mostrar a palavra inteira,utilizando o endereço da 1ºletra? 

     

    void copia (*string s)
    { 
      int vet[ ]; 
      int i,j=1;
      
      vet[0]=*s[0];
      for (i=1;s[i]!='\0';i++ )
      {
         if (s[i]== ' ')
         vet[j]=*s[i+1];
         J++;
      }

     

  2. Ainda não sei usar lista encadeada,mas se alguém puder me explicar melhor o que é pra ser feito neste exercicio,tipo passo a passo o que devo fazer,me ajuda a iniciar o código,Thanks!

     

    Implementar uma tabela hash com as seguintes características:

     Os dados a serem manipulados em cada nó da estrutura consistirão em strings;

     A tabela hash será representada por um vetor de 10 posições, cada qual apontando para uma lista encadeada;

     Os elementos de cada uma das 10 listas deverão estar ordenados (alfabeticamente). Além disso, não serão permitidas repetições de strings;

     Para definir em que lista cada nova string deverá ser armazenada, será necessária a implementação de uma função de espalhamento;

     A função de espalhamento "transformará" a string passada por parâmetro em um número inteiro. Este número será o somatório dos códigos ASCII de cada caracter da string;

     A nova string deverá ser armazenada na lista cujo índice é obtido pelo resto da divisão da função de espalhamento por 10.

  3. Nunca usei hora do sistema, não sei o comportamento do código, preciso armazenar hora em um vetor de struct ,para comparar hora <48 a variavel vai receber=reservado ,quando hora passar a ser >48,a variavel vai receber =disponivel.

     

    tentei fazer mas ao compilar tenho erro , [Error] subscripted value is neither array nor pointer nor vector

     

    typedef struct{char vendedor[20];float comissao;int hora;int dia;int mes;int ano;}tvendas;//reserva struct tm *DataAtual; //estrutura para armazenar hora.time_t Segundos;int Hora(void){    time(&Segundos); //obtém a hora em segundos.    DataAtual = localtime(&Segundos); //converte horas em segundos.    return(DataAtual->tm_hour); //retorna as horas de 0 a 24.}  int reservar (tvendas v,int y)   {  int res;      printf("\n\n 1:Para reserva cliente/2:Para reserva construtora\n");     scanf("%d", &res);           if(res==1)     {        v[y].hora=Hora();//erro nesta linha        y++;        printf("Reservado\n");        system("cls");        return y;}   else if (res==2) {  printf("Reservado\n");  system("cls"); }  else{ printf("Opção inválida\n");exit (EXIT_FAILURE);}} int main (void){tvendas v[tam];int r=0;r=reservar(v,r);int contatar(tvendas v,tcliente c){//outra função para verificar se hora <48int i,busca;FILE *Arq;for(i=0;i>tam;i++){if (v[i].hora<=48){            printf("Entre em contato com seu cliente:\n");    printf("%s",c[i].nome);         printf("%d",c[i].telefone);            }            printf("Se deseja armazenar a busca em um arquivo, digite 1 Se não, digite 0 para sair\n");       scanf("%d",&busca);       if (busca==1){   Arq=fopen("Reservas.txt","w");      if(!Arq){       printf("ERRO");       }      else{       fwrite(&c[i],sizeof(Tcliente),1,arq);         }         fclose(arq);         }      else{      return 0;}}}

     

  4. Preciso de uma ajuda com essa função, estou usando strstr para verificar a existencia de uma substring em uma string,mas dá erro quando a main chama a função,o programa para de executar após esses printf e scanf da função.
    o vetor que ela recebe está ok,bibliotecas também,se alguém souber qual é o erro!
     
    //E-dado um apartamento, exibe o código da garagem compradavoid vagaadquirida(char garagem[400]){int x;    char apto[10];    char *pt[10];        printf("\n Para verificar vaga adquirida\n");printf("\n Qual numero do apartamento:\n");    scanf("%s",apto);    for(x=0;x<400;x++){     *pt=strstr(garagem[x],apto);if(*pt != NULL) {        printf ("%s ",strstr (garagem[x],apto));           }        }                       }

     

  5. oi,preciso passar um vetor para função,acontece que,a função vai ser chamada,vai preencher a primeira posição do vetor e parar. depois vai ser chamada novamente e precisa acessar a proxima posição , assim sucessivamente.

     

    Acontece que não estou conseguindo fazer isso, sempre que chamo a função preencho na posição 0. :confused:

     

    //preenche garagem //a função está ok, preenchendo o vetor inicialvoid pgaragem(char garagem[400][20]){    int x;for(x=0;x<400;x++){sprintf( garagem[x],"G%.3d", x+1);    } //essa função que vai ser chamada e concatenar um numero inteiro ao que já está no vetor,e a cada chamada precisa andar uma posição.//acontece que está usando sempre a primeira posição.int vendagaragem (char garagem[400][20],int num,int w){char gar[10];int g,x;printf("\n Digite 1-para inserir garagem \n  0-para sair\n");      scanf("%d", &g);         if(g==1)         {              if( num==3)             {             venda +=40.000,00;             printf("Adicionado\n");             system("cls");             itoa (num,gar,10);             strcat(garagem[x],gar);             x+2;             }             else             {              venda +=20.000,00;              printf("Adicionado\n");              system("cls");              itoa (num,gar,10);              strcat(garagem[x],gar);          x++;            }          }    else{system("pause");}    return x;}int main(){char garagem[400][20];int w=0;int num;float venda;  w=vendagaragem(garagem,num,w);return 0;}

     

  6. sim minha variavel tem a palavra disponivel.,não creio que o erro esteja fora dessa parte que enviei anteriormente.e sim status é tipo char

     

    typedef struct{int num;int qto;float valor;float venda;char status[20];char tipo[20];}tcondominio; /preennche status inicialvoid pstatus(tcondominio cond[10][6][4]){int i,j,k;for(i=0;i<10;i++){for(j=0;j<6;j++){ for(k=0;k<4;k++)       {      strcpy(cond[i][j][k].status,"Disponivel");       }     }    }}void vender(tcondominio cond[10][6][4],int *bl,int *an,int *ap){float desc,fin;int venda;    //direto no if não está ok    if(strcmp (cond[*an-1][*bl-1][*ap-1].status,"Disponivel")==0);    {printf("\n\n Para venda a vista marque'1' para venda financiada marque'2' \n");scanf("%d", &venda);if (venda==1){     printf(" insira desconto até 15\n");     scanf("%f", &desc);      if(desc >0 && desc<=15)     {     desc=desc/100;     cond[*an-1][*bl-1][*ap-1].venda=cond[*an-1][*bl-1][*ap-1].valor - (cond[*an-1][*bl-1][*ap-1].valor            *desc);     printf("Vendido com sucesso\n");     strcpy (cond[*an-1][*bl-1][*ap-1].status,"Vendido");     strcpy (cond[*an-1][*bl-1][*ap-1].tipo,"A Vista");     }     else     {     printf("valor invalido \n");     system("pause");     }     }     else     if (venda==2){printf(" insira acrescimo até 95\n");scanf("%f", &fin);  if(fin >0 && fin<=95)     {     fin=fin/100;     cond[*an-1][*bl-1][*ap-1].venda=cond[*an-1][*bl-1][*ap-1].valor + (cond[*an-1][*bl-1][*ap-1].valor            *fin);     printf("Vendido com sucesso\n");     strcpy (cond[*an-1][*bl-1][*ap-1].status,"Vendido");     strcpy (cond[*an-1][*bl-1][*ap-1].tipo,"Financiado");     }     else     {     printf("valor invalido \n");     system("pause");     }     }int main (void){        tcondominio cond[10][6][4];        int bloco,andar,apto;         printf("\n Digite o bloco:1 a 4 \n ");         scanf("%d", &bloco);         printf(" Digite o andar:1 a 10 \n ");         scanf("%d", &andar);         printf(" Digite o apartamento:1 a 6 \n ");         scanf("%d", &apto);       vender(cond,&bloco,&andar,&apto,garagem);       reservar(cond,&bloco,&andar,&apto);       return 0; }
  7. Estou tentando comparar duas strings mas não está funcionando,preciso que essa comparação seja a condição pra entrar no for.

     

    //comparação direta no if é pra entrar no for se as strings forem iguais,está entrando com string diferentes tbm    if(strcmp (cond[*an-1][*bl-1][*ap-1].status,"Disponivel")==0);    {printf("\n Para venda a vista marque'1' para venda financiada marque'2' \n");scanf("%d" ,&venda);  }// aqui tentei fazer a mesma coisa,só que copiando em uma string e comparando depois,tbm não funcionouchar st[20];  strcpy(st,"Disponivel"); if (strcmp (cond[*an-1][*bl-1][*ap-1].status,st)==0)    {     printf("\n Para venda a vista marque'1' para venda financiada marque'2' \n");     scanf("%d" ,&venda);  }
     
  8. neste código escreve-se um item abaixo do outro ,ok, agora como anexar mais conteudo ao arquivo de forma que fique ao lado do que já está lá e não abaixo.?
     
    ex.1-101
         2-102
         3-103
     
     
     
    #include <stdio.h>

    int main ()
    {

    FILE *A;
    int i;

    A = fopen ("teste.txt", "w");

    if (A == NULL)
    {
    printf ("Erro na abertura do arquivo!");
    }
    else
    {
    for (i=1;i<=100;i++)
    {
    fprintf (A, "%d\n", i);
    }

    fclose (A);
    }
    A = fopen ("teste.txt", "a");
    if (A == NULL)
    {
    printf ("Erro na abertura do arquivo!");
    }
    else
    {
    for (i=1;i<=100;i++)
    {
    fprintf (A, "%d-", i+100);
    }
    fclose(A);
    }

  9. ok,

     

    mas continuando esse código, se eu precisar acrescentar uma outra variavel inteiro existente,(considerando que garagem já preenchida) só o sprintf resolve ou preciso concatenar ?

     

    ex.

     

    sprintf (garagem[x],”%d”,num);

  10. //Não sei se funciona ,mas estou tentando preencher um vetor com G001,G002,G003,...não consegui compilar,help.

    #include<stdio.h>

    #include<string.h>

    #include<stdlib.h>

     

     

    int main (void)

    {

    char garagem[400][10];;

    int i,j;

     

    garagem[0]= "G001";

     

    for(i=1;i<400;i++)

    {

    garagem= garagem[i-1]+(+1);

     

        }

        

        

    return 0;

      

     

    }

  11. Toda ajuda é bem vinda, obrigada eu troquei end por endereço. 

     

     

     

     Isso de não precisar colocar o operador de endereço é somente para strings né? Para inteiros eu coloco normal né? 

     

    Eu troquei a palavra end por endereço e tirei os operadores das strings, ainda não funcionou :(

     

    Eu utilizo o Dev C++, o que poderia ser mais? 

    A declaração de inteiro está errada: int fone[15]; correto int fone;

    • Curtir 1
  12. Como você faria um algoritimo em C que é uma matriz 10x6, para primeira linha , cada coluna recebe os valores respectivos 280,375,225,280,375,225 e para cada próxima linha mais 3,5% sobre o valor ,tentei esse for,com acrescimo iniciando com 0 mas está errado:

     

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

    {

     

    for (j=0;j<6;j++)

    {

     

    if ((j==0) || (j==3))

     

    {

     

    a[j].valor=280 +ac;

    ac=a[j].valor * (0,035);

       }

       

       if ((j==1) || (j==4))

     

    {

       a[j].qto=3;

    a[j].valor=375+ac1;

    ac1=a[j].valor* 0,035;

       }

       

       if ((j==2) ||(j==5))

     

    {

    a[j].valor=225+ac2;

    ac2=a[j].valor* 0,035;

       }

       

    }

  13. Estou tentando referenciar pelo índice, ex. guardar valor 2 na posição 0.mas não funciona.

     

    #include<stdio.h>

    typedef struct

    {

    int qto;

    float valor;

    }tapto;

     

    int main (void)

    {

    int i;

    tapto a [6];

     

     

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

    {

     

    if (a.qto ==0  || a.qto ==3)

     

    {

    a.qto = 2;

    a.valor=280;

       }

       

       if (a.qto ==1  || a.qto ==4)

     

    {

    a.qto = 3;

    a.valor=375;

       }

       

       if (a.qto ==2  || a.qto ==5)

     

    {

    a.qto = 1;

    a.valor=225;

       }

       

       

    }

     

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

    {

     

    printf("%d \n", a.qto);

    printf("%.2f \n", a.valor);

        }

        

    return 0;

    }

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!