Ir ao conteúdo
  • Cadastre-se

NataliaP.

Membro Júnior
  • Posts

    7
  • Cadastrado em

  • Última visita

Reputação

9

1 Seguidor

  1. Estou a dias nesse exercicio que meu professor passou lista :1) Elaborar um algoritmo que leia um vetor A de dez posições contendo números inteiros. Determine e mostre, a seguir os elementos de A que estão repetidos e quantas vezes cada um se repete. Implementar o algoritmo em C O problema esta no laço, eu ja tirei o while mas sem o while ele nao vai percorre o vetor desde inicio como eu estava querendo alem disso sem while ele so faz contagem de numeros iguais se estão um seguidos do outro. Com o while ele nao imprimi nem os que estão seguidos. Alguem pode me ajuda ? #include <stdio.h> #include <stdlib.h> int main(){ int i,A=0; int Cont=0; int *ContGeral; int *VetorA; int *VetorRepetido; //Alocacao dinamica VetorA=(int *)malloc(10*sizeof(int)); VetorRepetido=(int *)calloc(10,sizeof(int)); ContGeral=(int *)calloc(10,sizeof(int)); //Leitura dos elementos for(i=0;i<10;i++){ printf("Elemento %d=>",i); scanf("%d",(VetorA+i)); } int B=0; int z; z=0; printf("dfyuhghg"); //Procura se tem numeros iguais e conta quantas vezes while(z==0){ for(i=0;i<9;i++){ if(*(VetorA+B) == *(VetorA+i+1)){ Cont=Cont+1; *(VetorRepetido+A)=*(VetorA+B); *(ContGeral+A)=Cont; }else if(i>7){ A=A+1; B=B+1; }else if(B=8){ z=1; } } z=0; } //realocacao do tamanho VetorRepetido=(int *)realloc(VetorRepetido,A*sizeof(int)); ContGeral=(int *)realloc(ContGeral,A*sizeof(int)); //Impressao dos numeros iguais e quantidade for(i=0;i<=A;i++){ printf("\nElemento %d repetiu %d Vezes",*(VetorRepetido+i), *(ContGeral+i)); } }
  2. Muito obrigada, me ajudou de vdd
  3. Gente, Estou fazendo uma lista de alocacao dinamica que meu professor enviou, eu nao estou entendendo o que esta acontecendo, ele le tudo certo quando pede tamanho mas nahora de ler os elementos da matriz aqui no meu notebook ele simplesmente vai ler o ultimo elemento e para o programa como se tivesse alguma coisa errada na leitura dos elementos. Alguem entende sobre o assunto ? E se esta certo meu jeito de alocacao? #include <stdio.h> #include <stdlib.h> int *SomaColunaMatriz(int NLinha,int NColuna, int *Matriz,int *Vetor); int main(){ int NLinha,NColuna,i,j; int *Matriz; int *Vetor; //Leitura do tamanho da linha e coluna da matriz printf("Digite tamanho da Linha da Matriz=>"); scanf("%d",&NLinha); printf("Digite tamanho da Coluna da Matriz=>"); scanf("%d",&NColuna); //Alocacao dinamica da Matriz e do vetor Matriz=(int *)malloc(NLinha*NColuna*sizeof(int)); Vetor=(int *)malloc(NLinha*sizeof(int)); //Leitura dos elemtnos da matriz for(i=0;i<NLinha;i++){ for(j=0;j<NColuna;j++){ printf("%d Linha %d Coluna da Matriz=>",i,j); scanf(" %d",*(Matriz+(NLinha*i)+j)); } } Vetor=SomaColunaMatriz(NLinha,NColuna,Matriz,Vetor); //Impressao dos elementos do vetor for(i=0;i<NLinha;i++){ printf("%d |",*(Vetor+i)); } } int *SomaColunaMatriz(int NLinha,int NColuna, int *Matriz,int *Vetor){ int i,j; int Soma=0; //Soma dos elementos de uma linha atribui em um vetor for(i=0;i<NLinha;i++){ for(j=0;j<NColuna;j++){ Soma=Soma+*(Matriz+(NLinha*i)+j); Vetor=Soma; } } return Vetor; }
  4. @devair1010Pois é, estava um quanto errado, hoje eu estava refazendo e percebi isso. Mas muito obrigada de novo, vou roda e termina esse que me mandou.
  5. @devair1010 Ok, muito obrigada por me esclarecer e ajudar. Vou implementar no meu cod.
  6. COMECEI AGORA APRENDER LINGUAGEM C E ESTOU FAZENDO UM JOGO PARECIDO COM PUZZLE PETS E CANDY MAS COM LETRAS , TENHO ALGUMAS DUVIDAS DE ERROS E COMO RANDOMIZAR AS DUAS FUNCOES COMO INDICADAS NO PROGRAMA. SE ALGUMA ALMA BOA ESTIVER DISPOSTO ME AJUDAR HAHAHAH FICO FELIZ #include <stdio.h> #include <stdlib.h> #include <time.h> #define LINHA 7 #define COLUNA 6 void Impressao(char Matriz[LINHA][COLUNA]); void Inicializa(char Matriz[LINHA][COLUNA]); int Comando(char Matriz[LINHA][COLUNA]); void Permuta(char Matriz[LINHA][COLUNA],int i,int j,char Direcao); int VerificaTrio(char Matriz[LINHA][COLUNA],int *Pontuacao); int AcharT(char Matriz[LINHA][COLUNA]); void Atualizar(char Matriz[LINHA][COLUNA],int i, int j); int Randomico(char Matriz[LINHA][COLUNA],int i); int main(){ char Matriz[LINHA][COLUNA]; int Pontuacao=0; Inicializa(Matriz); Impressao(Matriz); Comando(Matriz); VerificaTrio(Matriz,Pontuacao); AcharT(Matriz); while(1){ if(Pontuacao==1000) printf("Fim de jogo"); break; Impressao(Matriz); VerificaTrio(Matriz,&Pontuacao); } return 0; } void Impressao(char Matriz[LINHA][COLUNA]){ int i ,j; printf(" 1 2 3 4 5 6 "); printf("\n -------------------\n"); for(i=0;i<LINHA;i++){ printf(" %d|",i+1); for(j=0;j<COLUNA;j++){ printf(" %c", Matriz[j]); } printf(" |\n"); } printf(" -------------------\n"); } //INICIALIZAR MATRIZ RANDOMIZANDO 3 LETRAS V X O void Inicializa(char Matriz[LINHA][COLUNA]){ int i,j; for(i=0;i<LINHA;i++){ for(j=0;j<COLUNA;j++){ //RANDOMIZAR LETRAS V X O } } } // PERGUNTAS AO USUARIO SOBRE POSICAO E QUAL TROCAR int Comando(char Matriz[LINHA][COLUNA]){ int i,j, swi=0; char Direcao; printf("Escolha posicao: (x,y) =>"); scanf("%d%d",&i,&j); printf("Escolha direcao: A(esquerdo),S(baixo),D(direto),W(cima) =>"); scanf(" %c",&Direcao); Permuta(Matriz, i, j, Direcao); if(AcharT(Matriz)==1) swi=1; return swi; } // FUNCAO PARA TROCAR AS posições PEDIDAS PELO USUARIO void Permuta(char Matriz[LINHA][COLUNA],int i,int j,char Direcao){ char aux; if(Direcao=='A'){ aux=Matriz[j]; Matriz[j]=Matriz[j+1]; Matriz[j+1]=aux; }else if(Direcao=='D'){ aux=Matriz[j]; Matriz[j]=Matriz[j-1]; Matriz[j-1]=aux; }else if(Direcao=='W'){ aux=Matriz[j]; Matriz[j]=Matriz[i-1][j]; Matriz[i-1][j]=aux; }else{ (Direcao=='S'); aux=Matriz[j]; Matriz[j]=Matriz[i+1][j]; Matriz[i+1][j]=aux; } } //Verifica a matriz toda e retorna 1 se encontrou algum trio ou 0 se não achou nenhum // E SUBSTITUIR O TRIO PELA LETRA T int VerificaTrio(char Matriz[LINHA][COLUNA],int *Pontuacao){ int i, j; swi=0; for(i=0;i<LINHA-2;i++){ for(j=0;j<COLUNA;j++){ if((Matriz[j])==(Matriz[i+1][j])==(Matriz[i+2][j])){ Matriz[j]='T'; Matriz[i+1][j]='T'; Matriz[i+2][j]='T'; *Pontuacao= *Pontuacao+100; swi=1; } } } for(i=0;i<LINHA;i++){ for(j=0;j<COLUNA-2;j++){ if((Matriz[j])==(Matriz[j+1])==(Matriz[j+2])){ Matriz[j]='T'; Matriz[j+1]='T'; Matriz[j+2]='T'; *Pontuacao=*Pontuacao+100; swi=1; } } } return swi; } //FUNCAO PARA ACHAR LETRAS T int AcharT(char Matriz[LINHA][COLUNA]){ int i,j; for(i=LINHA;i>=1;i--){ for(j=COLUNA;j>=1;j--){ if(Matriz[j]='T'){ Atualizar(Matriz,i,j); } } } } // FUNCAO PARA SUBIR O T DE POSICAO ATE PRIMEIRA LINHA E COLUNA void Atualizar(char Matriz[LINHA][COLUNA],int i, int j){ char aux, aux2; for(i=LINHA;i<0;i--){ if(Matriz[j]=='T' && Matriz[i-1][j]=='T'){ aux=Matriz[j]; aux2=Matriz[i-1][j]; Matriz[j]=Matriz[i-2][j]; Matriz[i-1][j]=Matriz[i-3][j]; Matriz[j]=aux; Matriz[i-1][j]=aux2; } else aux=Matriz[j]; Matriz[i-1][j]=Matriz[j]; Matriz[j]=aux; if(i=1){ for(j=1;j=COLUNA;j++){ Matriz[j]='T'; Matriz[j]=aux; } Randomico(Matriz,i); } } } //FUNCAO PARA SUBSTITUIR O T E COLOCAR NOVAS LETRAS RANDOMIZADAS int Randomico(char Matriz[LINHA][COLUNA],int i){ for (i=1;i<0;i--) { //RANDOMIZAR LETRAS V X O NA SUBSTITUICAO ONDE FICARAM TTT DEPOIS DE TRANSFERIR TODOS T PARA CIMA. } }

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