Ir ao conteúdo

Alberto Estenio

Membro Pleno
  • Posts

    24
  • Cadastrado em

  • Última visita

Tudo que Alberto Estenio postou

  1. não consegui
  2. Escreva a seguinte função, que avalia uma posição em um jogo de xadrez: int avaliaPosicao(char tabuleiro[8][8]) tabuleiro representa uma configuração de peças em um tabuleiro de xadrez, sendo que as letras Q, R, B, N e P representam as peças pretas, enquanto as letras q, r, b, n e p representam as peças brancas. A função avaliaPosicao deve somar os valores das peças pretas (Q = 9, R = 5, B = 3, N = 3, P = 1). E também deve somar os valores das peças brancas (q = -9, r = -5, b = -3, n = -3, p = -1). A função deve retornar a diferença entre os dois números obtidos. Este valor será positivo se as peças pretas estiverem em vantagem e negativas se estiverem em desvantagem) // No DEV C++ ta acusando problema como no print //No CODE BLOCKS ele roda, porém quando insere o primeiro valor da bug Qual será o problema desse código? #include <stdio.h> #include <string.h> #include <ctype.h> int avaliaPosicao(char tabuleiro[8][8]); int avaliaPosicao(char tabuleiro[8][8]){ int Q= 9,R= 5,B= 3, N= 3, P= 1; //pretas int q=-9,r=-5,b=-3, n=-3, p=-1; //brancas int i,j,pretas=0,brancas=0,vantagem=0; for(i=0;i<8;i++){ for(j=0;j<8;j++){ if(tabuleiro[i][j] == tabuleiro['Q']['q']) {vantagem = vantagem + (Q+q);} if(tabuleiro[i][j] == tabuleiro['Q']['r']) {vantagem = vantagem + (Q+r);} if(tabuleiro[i][j] == tabuleiro['Q']['b']) {vantagem = vantagem + (Q+b);} if(tabuleiro[i][j] == tabuleiro['Q']['n']) {vantagem = vantagem + (Q+n);} if(tabuleiro[i][j] == tabuleiro['Q']['p']) {vantagem = vantagem + (Q+p);} if(tabuleiro[i][j] == tabuleiro['R']['q']) {vantagem = vantagem + (R+q);} if(tabuleiro[i][j] == tabuleiro['R']['r']) {vantagem = vantagem + (R+r);} if(tabuleiro[i][j] == tabuleiro['R']['b']) {vantagem = vantagem + (R+b);} if(tabuleiro[i][j] == tabuleiro['R']['n']) {vantagem = vantagem + (R+n);} if(tabuleiro[i][j] == tabuleiro['R']['p']) {vantagem = vantagem + (R+p);} if(tabuleiro[i][j] == tabuleiro['B']['q']) {vantagem = vantagem + (B+q);} if(tabuleiro[i][j] == tabuleiro['B']['r']) {vantagem = vantagem + (B+r);} if(tabuleiro[i][j] == tabuleiro['B']['b']) {vantagem = vantagem + (B+b);} if(tabuleiro[i][j] == tabuleiro['B']['n']) {vantagem = vantagem + (B+n);} if(tabuleiro[i][j] == tabuleiro['B']['p']) {vantagem = vantagem + (B+p);} if(tabuleiro[i][j] == tabuleiro['N']['q']) {vantagem = vantagem + (N+q);} if(tabuleiro[i][j] == tabuleiro['N']['r']) {vantagem = vantagem + (N+r);} if(tabuleiro[i][j] == tabuleiro['N']['b']) {vantagem = vantagem + (N+b);} if(tabuleiro[i][j] == tabuleiro['N']['n']) {vantagem = vantagem + (N+n);} if(tabuleiro[i][j] == tabuleiro['N']['p']) {vantagem = vantagem + (N+p);} if(tabuleiro[i][j] == tabuleiro['P']['q']) {vantagem = vantagem + (P+q);} if(tabuleiro[i][j] == tabuleiro['P']['r']) {vantagem = vantagem + (P+r);} if(tabuleiro[i][j] == tabuleiro['P']['b']) {vantagem = vantagem + (P+b);} if(tabuleiro[i][j] == tabuleiro['P']['p']) {vantagem = vantagem + (P+p);} } } vantagem = (pretas-brancas); return (vantagem); } int main(){ char tabuleiro[8][8]; int i,j,vantagem; for(i=0;i<8;i++){ // insersão das pretas printf("insira uma peça preta Q ou R ou B ou N ou P\n"); for(j=0;j<8;j++){ // insersão das brancas printf("insira uma peça branca q ou r ou b ou n ou p\n"); scanf("%c",&tabuleiro[i][j]); if( tabuleiro[i][j] != tabuleiro['Q']['q']|| tabuleiro[i][j] != tabuleiro['Q']['r']|| tabuleiro[i][j] != tabuleiro['Q']['b']|| tabuleiro[i][j] != tabuleiro['Q']['n']|| tabuleiro[i][j] != tabuleiro['Q']['p']|| tabuleiro[i][j] != tabuleiro['R']['q']|| tabuleiro[i][j] != tabuleiro['R']['r']|| tabuleiro[i][j] != tabuleiro['R']['b']|| tabuleiro[i][j] != tabuleiro['R']['n']|| tabuleiro[i][j] != tabuleiro['R']['p']|| tabuleiro[i][j] != tabuleiro['B']['q']|| tabuleiro[i][j] != tabuleiro['B']['r']|| tabuleiro[i][j] != tabuleiro['B']['b']|| tabuleiro[i][j] != tabuleiro['B']['n']|| tabuleiro[i][j] != tabuleiro['B']['p']|| tabuleiro[i][j] != tabuleiro['N']['q']|| tabuleiro[i][j] != tabuleiro['N']['r']|| tabuleiro[i][j] != tabuleiro['N']['b']|| tabuleiro[i][j] != tabuleiro['N']['n']|| tabuleiro[i][j] != tabuleiro['N']['p']|| tabuleiro[i][j] != tabuleiro['P']['q']|| tabuleiro[i][j] != tabuleiro['P']['r']|| tabuleiro[i][j] != tabuleiro['P']['b']|| tabuleiro[i][j] != tabuleiro['p']['n']|| tabuleiro[i][j] != tabuleiro['P']['p'] ) { printf("invalido"); i--; j--;} printf("%d",avaliaPosicao(tabuleiro[i][j]) ); vantagem = avaliaPosicao(tabuleiro[i][j]); if(vantagem >0){ printf("as pretas tem a vantagem"); } else{ printf("as brancas tem a vantagem"); } } } return 0; }
  3. Escreva a seguinte função: float compute_GPA(char notas[], int n); A matriz notas deve conter letras (A, B, C, D ou F, minúsculas ou maiúsculas); n é o tamanho da matriz. A função deve retornar a média das notas (Assuma que A = 4, B = 3, C = 2, D = 1, e F = 0). Obs. Lembre-se que para alterar as letras para maiúsculas deve ser usada a função toupper. Ex.: toupper(notas) tem alguma forma melhor de fazer isso ? tipo como uma matriz que as linhas sejam as char letras e as colunas int números? #include <stdio.h> #include <ctype.h> #include <time.h> #include <string.h> float compute_GPA(char notas[], int n); float compute_GPA(char notas[], int n){ int i; int soma=0; for(i=0;i<n;i++){ scanf(" %c",&notas[i]); notas[i]= toupper(notas[i]); switch ( notas[i] ) { case 'A': soma = soma+4; break; case 'B': soma = soma+3; break; case 'C' : soma = soma+2; break; case 'D': soma = soma+1; break; case 'F' : soma = soma+0; break; default : printf ("Valor invalido!\n"); i--; } } return (soma/n); } int main(){ int n; printf("quantas notas?\n"); scanf("%d",&n); char notas[n]; printf("%f",compute_GPA(notas,n)); return 0; }
  4. Escreva três funções que retornam os seguintes valores (Assuma que a e n são parâmetros, sendo que a é um vetor de valores int e n é o tamanho do vetor): a) O maior elemento; A média de todos os elementos; c) O número de elementos positivos. " COMO POSSO FAZER PARA GERAR VALORES INTEIROS ALEATÓRIOS POSITIVOS E NEGATIVOS NO MESMO VETOR ? " #include <stdio.h> #include <time.h> int maior(int *a, int n) { int i, m=0; for(i=0;i<n;i++) { if(a[i]>m) m = a[i]; } return (m); } float media(int *a, int n) { float cont=0 , med; int i; for(i=0;i<n;i++) cont = cont + a[i]; med = cont/n; return (med); } int positivos(int *a, int n) { int i,pos=0; for(i=0;i<n;i++) { if (a[i]>=0) pos++; } return (pos); } int main() { srand(time(NULL)); int n,i; printf("quantos elementos tem o vetor?\t"); scanf("%d",&n); int a[n]; for(i=0;i<n;i++) { a[i]= rand()%10-0; } for(i=0;i<n;i++) { printf("\n %d \n",a[i]); } printf("O maior elemento:\t %d\n\n",maior(a,n)); printf("A media dos elementos:\t %f\n\n",media(a,n)); printf("O numero de elementos positivos:\t %d\n\n",positivos(a,n)); return 0; }
  5. #include <stdio.h> #include <time.h> int maiorf(int v[], int a); int menorf(int v[], int a); int maiorf(int v[],int a) { int i, maior = v[0]; for(i=0;i<a;i++) { if ((v[i] > maior) || (v[i]==maior)) maior = v[i]; } return (maior); } menorf(int v[], int a) { int i, menor = v[0]; for(i=0;i<a;i++) { if ((v[i] < menor) || (v[i]== menor)) menor = v[i] ; } return (menor); } int main() {srand(time(NULL)); int i,n; printf("qual o tamanho do vetor\n"); scanf("%d",&n); int v[n]; for(i=0;i<n;i++) { v[i] = rand()%100000-0; } for(i=0;i<n;i++) { printf(" %d \n\n",v[i]); } printf("\n maior %d \n",maiorf(v,n)); printf("\n menor %d \n",menorf(v,n)); return 0; } agora sim! Muito obrigado Rodrigo
  6. o que esta errado com essa função? Não estou conseguindo enxergar... Escreva um programa que use uma função para encontrar o maior e o menor número em um vetor de n números e apresente estas informações (maior e menor número localizado no vetor) na função main do programa. Observe que é necessário passar passagem de parâmetros por referência. Faça três versões do programa, usando os três modos básico de declarar vetor como parâmetro de uma função #include <stdio.h> #include <time.h> int maiormenor(int v[], int a); int maiormenor(int v[],int a) { int i, maior = v[0], menor = v[a-1]; for(i=0;i<a;i++) { if ((v[i] > maior) || (v[i]==maior)) { maior = v[i]}; } for(i = a-1 ;i == 0;i--) { if ((v[i] < menor) || (v[i]==menor)) { menor = v[i] }; } return (maior, menor); } int main() { srand(time(NULL)); int i,n; scanf("%d",&n); int v[n]; for(i=0;i<n;i++) { v[i] = rand()%10-0; } for(i=0;i<n;i++) { printf("\n %d",v[i]); } printf("maior %d menor %d",maiormenor(v,n)); return 0; }
  7. Leia a altura e o sexo de uma pessoa e apresente o seu peso ideal. Para homens, calcular e apresentar o peso ideal usando a fórmula peso ideal = 72.7 x alt - 58 e, para mulheres, peso ideal = 62.1 x alt - 44.7. Ao finalizar a digitação das informações pergunte ao usuário se deseja continuar digitando. #include <stdio.h> void pesoideal(){ float altura; char sexo, continuar = 'x'; do{ printf("escreva a altura x.xx\n\n"); scanf(" %f",&altura); printf("e escreva o sexo m/f :\n\n"); scanf(" %c",&sexo); switch ( sexo ) { case 'm' : printf("seu peso ideal é %.3f kg\n\n",(altura * 72.7) - 58); break; case 'f' : printf("seu peso ideal é %.3f kg\n\n",(altura * 62.1) - 44.7); break; default : printf (" sexo invalido!\n\n"); } printf("deseja continuar? s/n\n"); scanf(" %c", &continuar);} while (continuar == 's'); } int main(){ pesoideal(); return 0; }
  8. isrnick você é 10! Muito obrigado!! ta me ajudando muito!!
  9. Desenvolva um programa que leia os valores de uma matriz de ordem 5 e verifique se ela é ou não uma matriz triangular superior (matriz triangular superior é uma matriz onde todos os elementos de posições acima da diagonal principal são diferentes de 0 e todos os elementos demais elementos são iguais a 0). não to conseguindo acertar esse logica alguem me ajuda? #include <stdio.h> #include<time.h> int main() { int m[5][5],i,j; srand(time(NULL)); for(i=0;i<5;i++){ printf("digite os numeros da linha: %d\n",i+1); for(j=0;j<5;j++){ printf("coluna: %d\n",j+1); scanf("%d",&m[i][j]); } } for(i=0;i<5;i++){ printf(" \n\n "); for(j=0;j<5;j++){ printf(" %d ",m[i][j]); } } for(i=0;i<5;i++){ for(j=0;j<5;j++){ } if(m[i][j+1]>0){ printf("\n\ntriangular superior\n\n"); } else{ printf("\n\nnao e triangular superior\n\n"); }} return 0; } adicionado 13 minutos depois #include <stdio.h> #include<time.h> int main() { int m[5][5],i,j; srand(time(NULL)); for(i=0;i<5;i++){ printf("digite os numeros da linha: %d\n",i+1); for(j=0;j<5;j++){ printf("coluna: %d\n",j+1); scanf("%d",&m[i][j]); } } for(i=0;i<5;i++){ printf(" \n\n "); for(j=0;j<5;j++){ printf(" %d ",m[i][j]); } } int s = 10; for(i=0;i<5;i++){ for(j=0;j<5;j++){ } if(m[i][j+1]>0){ s=0; } else{ s=1; } } if(s=0){ printf("\n\ntriangular superior\n\n");} if(s=1){ printf("\n\nnao e triangular superior\n\n");} return 0; }
  10. Show! muito obrigado
  11. algum anjo me ajuda com esse problema? tentei de varios jeitos mais nao consegui Desenvolva um programa que gere uma matriz quadrada de ordem 10 preenchida com números aleatórios entre 1 e 10. Considerando a matriz gerada, o programa deve verificar: a. Se há linha(s) ou coluna(s) em que todos os elementos são pares – nesse caso, indique a(s) linha(s) ou a(s) coluna(s); b. Se a média dos elementos da diagonal principal é maior do que a média de todos os elementos da matriz; c. Se há mais elementos na primeira metade do intervalo (entre 1 e 5) ou na segunda (entre 6 e 10). #include <stdio.h> #include <time.h> //*_________________________________________________*// int main() { //*___________DISTRIBUIÇAO DA MATRIZ_________________*// int mtz[10][10],i,j; srand(time(NULL)); for(i=0;i<10;i++){ for(j=0;j<10;j++){ mtz[i][j]= rand()%11; } } //*____________IMPRESSAO DA MATRIZ___________________*// for(i=0;i<10;i++){ printf(" \n\n "); for(j=0;j<10;j++){ printf(" %d ",mtz[i][j]); } } //*___________MEDIA GERAL DA MATRIZ_________________*// float mgm=0; for(i=0;i<10;i++){ for(j=0;j<10;j++){ mgm += mtz[i][j]; } } printf("\n\nMEDIA DA MATRIZ: %f\n",mgm/10); //*___________MEDIA DA DIAGONAL PRINC_______________*// int dp[10]; float mdp=0; for(i=0;i<10;i++){ dp[i]= mtz[i][i]; mdp += dp[i]; } printf("\n\nMEDIA DA DIAGONAL PRINCIPAL: %f\n\n\n",mdp/10); //*___________VERIFICAÇÃO MDP>MGM___________________*// if(mdp>mgm){ printf("MEDIA DA PRINCIPAL E MAIOR! \n");} else{ printf("MEDIA DE TODOS OS ELEMENTOS E MAIOR!\n");} //*__________QUNTIDADE DE ELEMENTOS_________________*// int pm=0; for(i=0;i<5;i++){ for(j=0;j<5;j++){ pm += mtz[i][j]; } } printf("\n\nQUANTIDADE DOS ELEMENTOS PRIMEIRA METADE: %d\n",pm); int sm=0; for(i=5;i<10;i++){ for(j=5;j<10;j++){ sm += mtz[i][j]; } } printf("\n\nQUANTIDADE DOS ELEMENTOS SEGUNDA METADE: %d\n",sm); //*VERIFICAÇÃO DA PARIDADE DAS LINHAS E DAS COLUNAS*// int lp=0,cp=0; for(i=0;i<10;i++){ for(j=0;j<10;j++){ if(mtz[i][j]%2==0){ lp++; } } } for(i=0;i<10;i++){ for(j=0;j<10;j++){ if(mtz[j][i]%2==0){ cp++, } } } return 0; }
  12. Jóia! Muito obrigado
  13. no pc o valor de B sempre da maior que o de A, porém a programação das linhas de ambos contadores é a mesma, alguém consegue me explicar? no meu teste B tem que ser igual a A pois a programação é a mesma para ambos... #include <stdio.h> #include <stdlib.h> int main() { int TAM=10; int i, j, numeros[TAM][TAM], t, a, b; srand(time(NULL)); for (i = 0; i < TAM; i++){ for (j = 0; j < TAM; j++){ numeros[i][j] = rand() % 100; } } t = 0; a = 0; b = 0; for (i = 0; i < TAM; i++){ for (j = 0; j < TAM; j++){ if ((numeros[i][j] > 15) && (numeros[i][j] < 45)){ a++; } if (numeros[i][j] > 60){ numeros[i][j] = numeros[i][j]%60; t++; } if ((numeros[i][j] > 15) && (numeros[i][j] < 45)){ b++; } } } printf ("T: %d, A: %d, B: %d", t, a, b);
  14. //*Codifique um programa para ler uma matriz quadrada de ordem n e exibir apenas os elementos da diagonal principal.*// #include <stdio.h> int main() { int i, j, n; scanf("%d",&n); int mtz[n][n]; for(i=0;i<n;i++){ for(j=0;j<n;j++){ scanf("%d",&mtz[i][j]); } } for(i=0;i<n;i++){ printf(" \n\n "); for(j=0;j<n;j++){ printf(" %d ",mtz[i][j]); } } for(i=0;i<n;i++){ printf("% d ",mtz[i][i]); } return 0; }
  15. #include <stdio.h> #include <stdlib.h> int main() { int i,j,a[5][3],b[5][3],c[5][3]; for(i=0;i<5;i++){ printf("linha %d matriz a\n",i+1); for(j=0;j<3;j++){ scanf("%d",&a[i][j]);} } for(i=0;i<5;i++){ printf("linha %d matriz b\n",i+1); for(j=0;j<3;j++){ scanf("%d",&b[i][j]); } } printf("\n"); for(i=0;i<5;i++){ for(j=0;j<3;j++){ printf(" %d",a[i][j]); }printf("\n"); }printf("\n"); printf("matriz A\n\n"); for(i=0;i<5;i++){ for(j=0;j<3;j++){ printf(" %d",b[i][j]); }printf("\n"); }printf("matriz B\n\n"); for(i=0;i<5;i++){ for(j=0;j<3;j++){ c[i][j] = a[i][j] + b[i][j]; printf(" %d",c[i][j]); }printf("\n"); }printf("matriz C\n"); return 0; }
  16. Desenvolva um programa que: a. Leia dois vetores contendo, cada um, 25 números inteiros. b. Intercale os elementos destes dois conjuntos formando um novo vetor de 50 números inteiros. c. Imprima o novo vetor obtido. Exemplo: vetA 31 70 125 ... 14 193 15 vetB 5 40 56 ... 7 51 101 vetC 31 5 70 40 125 56 ... 14 7 193 51 15 101 7. podem me ajudar a encontrar o erro nessa logica? #include <stdio.h> #include <stdlib.h> int main() { int i, j, k, vet_a[5], vet_b[5], vet_c[10]; for(i = 0; i <= 4; i++){ scanf("%d %d",&vet_a[i],&vet_b[i]);} for( j = 0; j <= 9; j++){ if (j%2 == 0){ vet_c[j] = vet_a[j]; } else{ vet_c[j] = vet_b[j];} } for (k = 0; k <=9; k++){ printf("\n %d \n",vet_c[k]);} return 0; } adicionado 29 minutos depois /*não to conseguindo entender qual o erro*/ #include <stdio.h> #include <stdlib.h> int main() { int vet1[25],vet2[25], vet3[50], aux, i; for(i = 0; i < 5; i++){ scanf("%d %d",&vet1[i], &vet2[i]); } for(i = 0; i < 10; i++){ if (i % 2 == 0){ vet3[i] = vet1[i];} else{ vet3[i + 1] = vet2[i]; } for(i = 0; i < 10; i++){ printf("%d\n",vet3[i]); } } return 0; }
  17. #include <stdio.h> #include <stdlib.h> int main() { int v [1000], i, j, v2[1005], pos[1000]; int a1, a2, b1, b2, c1, c2; for(i = 0; i > 1000; i++){ v[i] = rand()%149; v2[i] = v[i]; pos[i]; } for(i = 0; i>1000; i++){ for (j = 0; j >1000; j++){ if (v[i] != v2[j]);{ printf("%d",v[i]);} } i = 0; j = 0; } for(i = 0; i>1000; i++){ for (j = 0; j >1000; j++){ if (v[i] == v2[j]){ a1 = pos[i]; a2 = v[i]; }} printf("posicao %d valor %d",a1, a2);} for(i = 0; i>1000; i++){ for (j = 0; j >1000; j++){ if (v[i] == v2[j]){ b1 = pos[i]; b2 = v[i]; }} printf("posicao %d valor %d",b1, b2);} for(i = 0; i>1000; i++){ for (j = 0; j >1000; j++){ if (v[i] == v2[j]){ c1 = pos[i]; c2 = v[i]; }} printf("posicao %d valor %d",c1, c2);} return 0; }
  18. Não consegui...
  19. me ajuda =[ ja tentei mais não consigo extrair estes valores
  20. é requisito que seja apenas com vetores...
  21. A partir de um vetor de 1000 valores inteiros gerados aleatoriamente no intervalo [0, 149], deve-se mostrar os valores que não estão repetidos e informar os três números que mais se repetiram. Dica: Para contar, utilize um segundo vetor, em que os índices correspondem ao conteúdo do vetor aleatório. #include <stdio.h> #include <stdlib.h> int main() { int vet1[150], vet2[1000], i, j,a,b,c; for(i = 0; i <= 149; i++){ vet1 = i;} for (i = 0; i <= 999; i++){ vet2 = rand()%149;} // estou com dificuldade para montar uma lógica... for (j = 0; j <= 999; j++){ for(i = 0; i <= 149; i++){ if (vet2[j] != vet1){ printf("%d\n",vet2[j]); } } } return 0; } help please
  22. Não estou conseguindo enxergar o erro desse algoritimo Calcule e apresente a seguinte seqüência: 0,2,3,4,6,8,11,16,20,32,37,64,70,128,135...n. Obs. use pow(x,n) fiz o Seguinte algorítimo com ' for ' : // n == exponencial, imp == impar, pr == par, x == base, rpt == n execuções. ------------------------------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <math.h> int main() {int n,rpt; double imp, pr, x = 2 ; scanf("%d",&rpt); printf("0"); for(n = 1;n <= rpt; n++){ if (n % 2 != 0){ imp = pow(x,n); printf("\n %.0f \n", imp);} else{ pr = pow(x,n) + n; printf("\n %.0f \n", pr); } } return 0; } a saída para 14 repetições rpt está sendo: 0, 2, 6, 8, 20, 32, 70, 128, 256, 512, 1024, 2048, 4108, 8192, 16398 preciso que esse padrão seja: 0, 2, 3, 4, 6, 8, 11 ,16, 20, 32, 37, 64, 70, 128, 135. ..n. alguém me ajuda enxergar o erro?

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!