Ir ao conteúdo

Alberto Estenio

Membro Pleno
  • Posts

    24
  • Cadastrado em

  • Última visita

Reputação

14
  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; }

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!