Ir ao conteúdo
  • Cadastre-se

Fabiani

Membro Júnior
  • Posts

    8
  • Cadastrado em

  • Última visita

Reputação

2
  1. Fabiani

    Ajuda em Matrizes

    Olá, bom to fazendo um exercício em que tenho que procurar 5 numeros em uma Matriz. E preciso escrever para cada numero se ele foi ou não encontrado na matriz. Se ele foi preciso escrever também a posição em que ele foi encontrado. Eu fiz e ele tá funcionando certinho, mas na hora de imprimir, se o numero estiver presente na matriz ele imprime a primeira vez certo, mostrando sua posição corretamente, mas também imprime junto outras mensagens dizendo que o numero não esta na matriz, bom vejam ai meu código, o erro deve estar na estrutura mas ja tentei fazer algumas mudanças e continua igual =( #include <stdio.h>#include <stdlib.h>#define t 3 int main(){int m[t][t];int i,j,n,cont=0; //Colocando os numeros na matrizprintf("Informe os elementos da matriz M: \n");for(i=0;i<t;i++)for(j=0;j<t;j++){printf("[%d][%d] : ", i,j);scanf("%d", &m[i][j]); } //Escreve a matriz printf("\n"); for(i=0;i<t;i++){ for(j=0;j<t;j++) printf("%d | ", m[i][j]); printf("\n \n");} //Aqui ele verifica se o numero esta na matriz ou nao, e no fim informa a mensagem adequadaprintf("Informe 5 numeros para encontrar na Matriz M: \n"); do{ scanf("%d", &n); for(i=0;i<t;i++) for(j=0;j<t;j++){ if(n==m[i][j]){ printf("Se encontra na posicao [%d][%d]", i,j);}else{printf("Nao se encontra!\n");}}cont++;}while(cont<5); system("pause"); } desde ja agradeço!
  2. Preciso fazer um programa de controle de estoque, onde tenho que cadastrar os produtos de uma fábrica de brinquedos. Estou conseguindo cadastrar, mas a função para controlar estoque está com problemas. Só funciona corretamente quando são apenas 2 produtos cadastrados... Quando existem mais produtos cadastrados está pulando... Bom, é só vendo o programa funcionar pra entender... Se alguém conseguir ajudar, desde já agradeço! #include <stdio.h>#include <stdlib.h>#include<string> #define TAM 50 char nome_brinquedo[TAM][50];int estoque[TAM];int preco[TAM];int cod[TAM];int op;void cadastra_brinquedos();void venda_brinquedos(); void venda_brinquedos(){ //*função de controle de estoqueint codigo,i,qtd,resposta;system("cls");system ("color F");do{printf ("\nInforme o codigo do brinquedo que a venda foi efetuada: ");scanf("%d", &codigo);for (i=0;i<TAM;i++){if(cod[i]==codigo){printf("O brinquedo esta cadastrado. Total em estoque: %d\n",estoque[i]);printf ("Informe a quantidade a ser vendida: ");scanf ("%d", &qtd);if (qtd<estoque[i]){ //Se a quantidade a ser vendida for menor que o estoque, a venda é concluidaprintf("\nVenda concluida");estoque[i]=(estoque[i]-qtd); //Aqui ele diminui a quantidade vendida do total do estoque. } } }printf("\n Digite 1 para continuar ou 0 para voltar para o menu");scanf ("%d",&op);}while(op==1);} void cadastra_brinquedos(){int linha;system("cls");system ("color F");do{printf("\nNome do brinquedo: ");scanf("%s", &nome_brinquedo[linha]);printf ("Codigo: ");scanf("%d",&cod[linha]);printf("Valor: ");scanf ("%d", &preco[linha]);printf("Quantidade no estoque: ");scanf("%d", &estoque[linha]);printf("\nDigite 1 para continuar ou 0 para voltar ao menu ");scanf ("%d",&op);linha++;}while(op==1); } void sai(){ system("color A"); system("cls"); printf("\n"); printf("\t\t FIM \n"); printf("\n"); system("pause"); exit(1);} main (){ char menu; int s; system("color D"); while((menu>0)||(menu<7)){ system("cls"); system("color D"); printf ("\n \t\t MENU DO PROGRAMA \n");printf("\n");printf (" \n \tEscolha o que deseja fazer: \n");printf ("\t1 : Incluir brinquedo\n");printf("\t2 : Venda de brinquedo\n");printf("\t3 : Listar 5 brinquedos mais vendidos\n");printf("\t4 : Listar 5 brinquedos menos vendidos\n");printf("\t5 : Listar os brinquedos em ordem crescente de estoque\n");printf("\t6 : Sair do programa\n");scanf ("%c",&menu);switch (menu){ case '1':cadastra_brinquedos();break;case '2':venda_brinquedos();break;case '6': sai(); } }}
  3. Fabiani

    Ajuda 0

    Oi, eu tenho um trabalho de implementação para fazer, tenho que montar um jogo Othello/Reversi. Uma breve explicação sobre o jogo: "É jogo para dois jogadores , jogado em um Tabuleiro de 8x8 onde inicialmente são colocadas 4 peças ao centro , duas de cada cor em diagonais onde a peça preta faz sempre o primeiro movimento e os jogadores jogam alternadamente , o jogo tem como meta capturar as peças adversárias e transformá-las nas da sua cor , vence quem tiver mais peças ao seu favor no final da partida . O jogo acaba quando não há mais casas a se jogarem dentro do tabuleiro ou quando não houver mais jogadas possíveis dentro das regras para ambos os jogadores. Partindo da Premissa de que para reverter uma ou mais peças adversárias é necessários que a cerquem em Diagonais , Verticais ou Horizontais , ou seja ... Cercando de ambos os lados das peças a serem capturadas com 2 peças de cada lado. " Então eu cheguei nisso: #include <stdio.h>#define TAM 9 char tab[TAM][TAM];char letra;int numero; void fazer_tabela(char tab[TAM][TAM]){int i,j;for (i=0;i<TAM+1;i++){for(j=0;j<TAM+1;j++){tab[i][j]='.';}}tab[0][0] = ' ';tab[1][0] = '1'; tab[2][0] = '2';tab[3][0] = '3';tab[4][0] = '4';tab[5][0] = '5';tab[6][0] = '6'; tab[7][0] = '7';tab[8][0] = '8'; tab[0][1] = 'A'; tab[0][2] = 'B';tab[0][3] = 'C';tab[0][4] = 'D';tab[0][5] = 'E';tab[0][6] = 'F';tab[0][7] = 'G';tab[0][8] = 'H'; tab[5][5] = 'X';tab[5][4] = 'O';tab[4][5] = 'O';tab[4][4] = 'X';} char montar_tabela(char tab[TAM][TAM]){ int i, j; for(i=0;i<TAM;i++){ for(j=0; j<TAM; j++){ printf("%2c", tab[i][j]); } printf("\n"); } } int mudando(char letra){int letrapnumero;switch(letra){ case 'a': letrapnumero = 1; break; case 'b': letrapnumero = 2; break; case 'c': letrapnumero = 3; break; case 'd': letrapnumero = 4; break; case 'e': letrapnumero = 5; break; case 'f': letrapnumero = 6; case 'g': letrapnumero = 7; case 'h': letrapnumero = 8;}return letrapnumero;} int procurando(char tab[TAM][TAM]){ // procurando '.' na matriz int i,j; for(i=1;i<=TAM;i++){ for(j=1;j<=TAM;j++){ if(tab[i][j]=='.'){ return 1; }else{ return 0; // se não encontrar nenhum '.' o jogo termina } } }} int achando(char tab[TAM][TAM], int jogador){int i,j,k;printf("Primeiro entre com uma LETRA e depois com um NUMERO referente na tabela: \n"); scanf(" %c %d", &letra, &numero); if(tab[numero][i]=='.'){ if(jogador==1){ //considerando que o jogador 1 seja o X // Loop para a esquerda até encontrar uma peça do adversário ou a borda da tabela for(j=i-1;tab[numero][j]=='O' && j!=0 ;j--); // verifica se o movimento é valido if(i-j <=1 || tab[numero][j] != 'X'); //movimento invalido return 1; }else // converte todas as peças do oponente em duas peças suas for(k=i;k>j;k--) tab[numero][k] = 'X'; }else{ printf("Lugar ja ocupado\n"); } montar_tabela(tab); getchar();} int main (){int i,j,k, pg1=0, pg2=0, jogador=1;fazer_tabela(tab);montar_tabela(tab); do{ if(jogador==1){ printf("Jogador 1\n"); achando(tab, jogador); k=procurando(tab); jogador=2; }else{ printf("Jogador 2\n"); achando(tab, jogador); k=procurando(tab); jogador=1; } } while(k==1); for(i=1;i<=TAM;i++){ for(j=1;j<=TAM;j++){ if(tab[i][j]=='X'){ pg1++; }else{ pg2++; } } } if(pg1>pg2){ printf("Jogador 1 venceu"); }else{ printf("Jogador 2 venceu");}return 0; } O problema é que sempre quando escolho um lugar na tabela, exemplo = E3, ele dá como "lugar já ocupado"... Se alguém conseguir ajudar a localizar o problema, agradeço!
  4. @LNW Nossa, verdade, eu nem tinha notado, desatenção... Obrigado pela dica, vou procurar sobre esses métodos.
  5. Tenho que fazer um exercício de ordenação utilizando o método da seleção. Aí está o código que consegui fazer: #include <stdlib.h>#include <stdio.h>int main (){int i,j,tam,aux;int v[30]; printf ("Informe o tamanho do vetor: ");scanf ("%d", &tam);printf ("Informe os dados do vetor: \n");for (i=0;i<tam;i++){scanf ("%d", &v[i]);}printf ("\nOrdem nao ordenanda: \n");for (i=0;i<tam;i++){printf ("%d \n", v[i]);} for (i=0;i<tam-1;i++)for (j=i+1;i<tam;i++){if (v[i]>v[j]){aux=v[i];v[i]=v[j];v[j]=aux;}}printf ("\nOrdem ordenada: \n");for (i=0;i<tam;i++){printf ("%d \n", v[i]);}system ("pause");return 0;} Sou iniciante ainda. Mas ao meu ver, está tudo ok. Porém na hora de imprimir o vetor em ordem ordenada (crescente) ele imprime assim: Exemplo: dados do vetor: 5 4 3 2 1 vetor ordenado: 4 5 3 2 1 deveria sair assim: 1 2 3 4 5 ... Não sei se me entenderam... Mas se alguém puder me ajudar, agradeço.
  6. oi gente sou novo nesse negócio de algoritmos e comecei a facul e to estudando isso... então tenho uma lista de exercícios pra fazer e tenho prova quarta feira, já consegui fazer vários exercícios mas cheguei nesse e não sei nem como começar... Fazer um algoritmo que leia números inteiros armazenando-os em uma matriz de 6 linhas por 6 colunas e identifique se é uma matriz diagonal dominante ou não. Uma matriz é diagonal dominante quando, para todas as linhas (i) desta, o valor na diagonal principal em módulo é maior que a soma dos módulos dos demais valores desta linha. (∀i)∣aii∣> Σ |aii| i≠ j se alguém puder me dar uma ajudinha ae eu agradeço, valeu ^^
  7. Oi, então, estou tentando fazer o seguinte exercício: "Fazer um algoritmo que leia números inteiros armazenando-os em uma matriz de 5 linhas por 5 colunas e após coloque em um vetor os 10 elementos acima da diagonal secundária da matriz. Escreva esse vetor." "Empaquei" na parte de separar os 10 elementos acima da diagonal secundária da matriz e colocar em um vetor. Se alguém puder me ajudar, agradeço muito. Olha só: vari, j, dp, acima: inteiroA: vetor [1..5,1..5] de inteiroB: vetor [1..10] de inteiroinicio// Seção de Comandospara i de 1 ate 5 faca para j de 1 ate 5 faca escreva ("A[",i,",",j,"]: ") leia (A[i,j]) fimparafimparapara i de 1 ate 5 faca para j de 1 ate 5 faca escreva (" ", A[i,j]) fimpara escreval (" ")fimpara escreva ("diagonal secundária: ")para i de 1 ate 5 faca para j de 1 ate 5 faca se (i + j = 6) entao escreva (A[i,j]) fimse fimpara escreva (" ")fimparapara i de 1 ate 5 facapara j de 1 ate 5 facase (i+j < 6) entaoacima<- A[i,j]B[i]<- acimafimsefimparafimparaescreva (B[i], " ")

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