Ir ao conteúdo
  • Cadastre-se

rsd_17

Membro Júnior
  • Posts

    15
  • Cadastrado em

  • Última visita

Reputação

10
  1. Ola estou a tentar aprender listas ligadas mas nao esta correndo muito bem,ja sei o basico de materia mas nao estou a saber aplicar. então eu estou a tentar desenvolver um programa em c que implemente uma lista ligada simples de numeros inteiros. E qeria fazer o basico que se pode fazer com listas: - mostrar no ecran os elementos que estão na lista - inserir um novo elemento na lista (inicio,meio,fim) -inserir um novo elemento de forma ordenado - eliminar um elemento da lista neste momento estou a tentar apresentar a lista, mas ela esta vazia então nao tenho bem noção de como posso preenche-la, posso pedir valores ao utilizador? Eu procurei em varios sites mas nao entendia grande coisa do codigo, o que tenho neste momento é isto: #include <stdio.h> #include <stdlib.h> typedef struct inteiro{ int num; struct inteiro * prox; }Inteiro; int main(){ Inteiro *LISTA; int count; Inteiro *tmp; int tam; LISTA= (Inteiro *) malloc(sizeof(Inteiro)); if(!LISTA){ printf("Sem memoria disponivel!\n"); exit(1); } if(LISTA->prox == NULL){ printf("Lista vazia!\n\n"); } tmp = LISTA->prox; printf("Lista:"); while( tmp != NULL){ printf("%d", tmp->num); tmp = tmp->prox; } printf("\n "); for(count=0 ; count < tam ; count++){ printf("\nOrdem:"); } for(count=0 ; count < tam ; count++){ printf("%d", count+1); printf("\n\n"); } free(LISTA); return 0; }
  2. @giu_d tem que ser tenho exame na sexta, nao esta fácil fazer esta cadeira.
  3. @giu_d certo mas o q significa este erro? nesta linha : maior=prova[i+1].nome;
  4. @giu_d e @Simon Viegas mas eu estou a usar um vetor (Prova prova[N]; ), logo nao precisaria de usar apontadores porque por definiçao estes ja possuem ou nao? ----------- outra coisa, nao estou a perceber este erro o que significa ? Carreguei nele e ele foi para a linha que esta a vermelho
  5. @giu_d de resto esta tudo bem? num subprograma nao seria -> em vez do ponto ?
  6. sera que alguem pode corrigir este exercicio para mim? obrigada. #include <stdio.h> #define N 10 //as estruturas sao dadas no enunciado typedef struct _data{ int dia, mes, ano; }Data; typedef struct _hora{ int hora, minuto; }Hora; typedef struct _prova{ char nome[255]; Data data; float distancia; Hora tempo; }Prova; int lista( Prova prova,int N ){ int i=0; for(i=0;i<10;i++){ if (prova[ i ].data == 2010){ printf("%d # %s # %f # %d",prova[ i ].data,prova[ i ].nome,prova[ i ].distancia,prova[ i ].tempo); } } return 0; } int tempo( Prova prova,int N){ int i; for(i=0;i<N;i++){ if(prova[ i ].tempo > prova[i+1].tempo){ menor=prova[i+1].tempo; }else{ menor=prova[ i ].tempo; } } return 0; } int crescente( Prova prova,int N){ int i, maior; for(i=0;i<N;i++){ for(j=0;j<(N-1);j++){ if(prova[ i ].nome>prova[i+1].nome){ maior=prova[i+1].nome; prova[i+1].nome=prova[ i ].nome; prova[ i ].nome=maior; } } } for(i=0;i<N;i++){ printf("%c \n ",v.nome); } return 0; } int main(){ FILE *fp; int i=0; Prova prova[N]; if((fp=fopen("provas.txt","rt"))==NULL){ printf("erro na abertura do ficheiro"); }else{ while(!feof(fp)){ fgetc(fp); fscanf("%d # %s # %f # %d",&prova[ i ].data,&prova[ i ].nome,&prova[ i ].distancia,&prova[ i ].tempo); i++; } } fclose(fp); crescente(prova, N); tempo( prova,N); lista( prova, N ); return 0; }
  7. rsd_17

    C maior entre dois inteiros

    @AnsiC eu estou a tentar fazer assim, assim consigo achar o maior de apenas dois certo? porque depois nao comparo com o maior que vem a seguir para saber qual o maior do vetor #include <stdio.h> int maior(int a, int b ) { return a > b ? a : b; } int main() { int v[10] = { 12, 4, 5, 78, -4, 18, 542, 0, 45, -72 }; int i=0,m; for(i=0;i<10;i++){ m=maior(v[ i ], v[ i+1 ]); } return 0; }
  8. Estou a tentar resolver esse exercicio mas nao estou a conseguir. Esta aqui o que ja tentei fazer . Agradeço ajuda. #include <stdio.h> int main() { int m[] = {4, 3, 6, 7}; int i=0,j=1; int p; for(i=0;i<3;i++){ for(j=0;j<m;j++){ p=j * m; } printf("\n"); } return 0; }
  9. Alguem me pode ajudar a resolver esse exercicio? obrigada.
  10. #include <stdio.h> #include <stdlib.h> struct _teatro { int assitencia; float preco_bilhete; char artist_banda[100]; }; int preenchervetor(struct _teatro VilaReal[],int v){ FILE *fp; int i=0; if((fp=fopen("TeatroVilaReal_Maio.txt","rt"))==NULL){ printf("Erro na abertura do ficheiro"); }else{ while(!feof(fp)){ fscanf(fp,"%d,%f,%s",&VilaReal.assitencia,&VilaReal.preco_bilhete,&VilaReal.artist_banda); printf("%d,%f,%s \n ",VilaReal.assitencia,VilaReal.preco_bilhete,VilaReal.artist_banda); i++; } fclose(fp); return 0; } } int main() { int v; v=50; struct _teatro VilaReal[v]; preenchervetor(VilaReal, v); return 0; } Estou a tentar fazer esse ex.2 b mas nao faz o que quero imprime umas coisas estranhas, sera por o vetor ter 50 e o ficheiro so ter 2 elementos? aguardo ajuda
  11. rsd_17

    C String vazia. Como faço?

    @Simon Viegas e @giu_d Obrigada mas eu acho que nao posso decidir o que posso aprender estou no 1 ano de licenciatura e trabalhamos sempre com o dev c++, e eu neste momento estou a tentar aprender a resolver problemas propostos pelos professores nas fichas de trabalho usando esse programa.
  12. rsd_17

    C++ subprograma em dev c++

    pergunta: Supondo que o valor de cada bola vermelha e azul marcada é 3 e 1 pontos respectivamente, implemente um subprograma que apresente no ecrã o número e o nome de cada um dos participantes do torneio com o número de pontos correspondente. #include <stdio.h> #include <stdlib.h> #define N 10 typedef struct snoker{ int participantes; char nome[50]; int vermelhas; int azuis; }Bilhar; int pontos(Bilhar jogador, int N ){ int vermelhas,azuis,i; int pontos[3]; for(i=0;i<3;i++){ //3 é o numero de participantes vermelhas =(jogador.vermelhas)*3; azuis=(jogador.azuis)*1; pontos=vermelhas+azuis; printf(" %s %d \n \n",jogador.nome,pontos); if(pontos[i-1]==pontos){ printf(" %s %d \n ",jogador.nome,pontos); } } return 0; } int main(void){ Bilhar jogador[N]; FILE *fp; int i=0; if((fp=fopen("lerficheiro.txt","rt"))==NULL){ printf("Erro na abertura do ficheiro!"); }else{ while(!feof(fp)){ fscanf(fp,"%d %s %d %d ",&jogador.participantes,&jogador.nome,&jogador.vermelhas,&jogador.azuis); printf("jogador[%d]:%d %s %d %d \n",i,jogador.participantes,jogador.nome,jogador.vermelhas,jogador.azuis); i++; } } pontos(jogador,N); fclose(fp); return 0; } Alguem me pode ajudar a resolver os erros que aparecem quando executado no dev c++
  13. rsd_17

    C String vazia. Como faço?

    @Simon Viegas Eu nem sei bem mas acho que é c++ estamos a trabalhar com o dev c++. Funciona perfeitamente muito obrigada
  14. rsd_17

    C String vazia. Como faço?

    @giu_d É um exercicio de um exame é nos dado esse codigo e pede para que no caso de o utilizador nao inserir nada na frase ou seja se a string for vazia, insista para que o utilizador insira uma frase. O seu codigo pede a frase mas se eu carregar no enter o programa termina. Outra coisa o que é isso: isspace(frase) ?
  15. Como é que eu consigo verificar se uma string esta vazia ? #include <stdio.h> #include <string.h> int main(void) { char frase[100]; int comp,i=0; printf("Introduza uma frase "); gets(frase); comp=strlen(frase); do{ printf("%d-%c \n",i+1,frase[comp-i-1]); i++; }while(i<comp); return 0; } Pergunta: Altere o código para que o programa insista no pedido de uma frase sempre que esta seja vazia.

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