Pesquisar na Comunidade
Mostrando resultados para as tags ''matriz''.
Encontrado 83 registros
-
alguém saber resolver
-
preciso fazer um programa com duas sub rotinas uma vai receber os valores de uma matriz 10x5 de números reais a outra soma os valores abaixo da linha 6 ate agora eu fiz isso #include <stdio.h> float mat[10][5]; int a, b; void recebe(float x); float soma(); int main() { float q, x; for(a=0;a<10;a++){ for(b=0;b<5;b++){ printf("digite o valor da %da casa da %da linha: ", b+1, a+1); scanf("%f",&x); recebe(x); } } q = soma(); printf("a soma dos valors das linhas inferiores a 6 e: %f ", q); return 0; } void recebe(float x) { x = mat[a][b]; } float soma() { float x, y; for(a=0;a<10;a++){ for(b=0;b<5;b++){ if(a>5){ mat[a][b] = y; x = x + y; } } } return (x); } mas a minha função somar retorna 0 e eu n consigo resolver isso, o que esta errado ?
-
Projeto Calendário Permanente (veja a imagem abaixo): Como eu faço? Abaixo está um código base para você. As matrizes A1, A2, B e C já estão preenchidas. Você implementará a função procurarLinha, que varre uma matriz, em busca de um valor, e retorna somente a linha em que encontrou o elemento. Adicionalmente, precisará terminar o main: -Com base no ano, decida se vai fazer a primeira pesquisa em A1 (ano até 2000) ou A2 (a partir de 2001). Use para a pesquisa somente os últimos dois dígitos do ano (para isso você pode usar o resto da divisão inteira por 100: ano%100). Esta pesquisa é feita com a chamada da função procurarLinha; só interessa saber em que linha da matriz está este ano. -Use a linha achada acima e a coluna correspondente ao mês para ler um valor da matriz B. -Some o valor lido da matriz B ao dia: esta soma deverá ser procurada na matriz C, com a chamada da função procurarLinha; só interessa saber em que linha da matriz está esta soma. Esta linha contém o dia da semana correspondente a data em questão: 0 para domingo, 1 para segunda, 2 para terça, 3 para quarta, 4 para quinta, 5 para sexta e 6 para sábado. Exemplo numérico para melhorar o entendimento: vamos descobrir que dia da semana corresponde a 01/09/2018: 1) 2018 > 2000, então procuro 18 na matriz A2: está na 10ª linha. 2) Na matriz B, 10ª linha, coluna correspondente ao mês de Setembro, leio o número 6. 3) Somo 6 mais o dia (1), obtendo 7. 4) Procuro em que linha da matriz C existe o número 7: última linha, correspondente à Sábado!! Código de apoio: #include <stdio.h> #include <locale.h> int procurarLinha(int L, int C, int mat[L][C], int proc) { //aqui você completa .... //esta função retorna a linha em que proc aparece na matriz for(....) { for(...) { if(...) { } } } } //Calendário permanente de 1901 a 2092 int A1[28][4], A2[28][4]; int B[28][12]= {{4,0,0,3,5,1,3,6,2,4,0,2}, {5,1,1,4,6,2,4,0,3,5,1,3}, {6,2,2,5,0,3,5,1,4,6,2,4}, {0,3,4,0,2,5,0,3,6,1,4,6}, {2,5,5,1,3,6,1,4,0,2,5,0}, {3,6,6,2,4,0,2,5,1,3,6,1}, {4,0,0,3,5,1,3,6,2,4,0,2}, {5,1,2,5,0,3,5,1,4,6,2,4}, {0,3,3,6,1,4,6,2,5,0,3,5}, {1,4,4,0,2,5,0,3,6,1,4,6}, {2,5,5,1,3,6,1,4,0,2,5,0}, {3,6,0,3,5,1,3,6,2,4,0,2}, {5,1,1,4,6,2,4,0,3,5,1,3}, {6,2,2,5,0,3,5,1,4,6,2,4}, {0,3,3,6,1,4,6,2,5,0,3,5}, {1,4,5,1,3,6,1,4,0,2,5,0}, {3,6,6,2,4,0,2,5,1,3,6,1}, {4,0,0,3,5,1,3,6,2,4,0,2}, {5,1,1,4,6,2,4,0,3,5,1,3}, {6,2,3,6,1,4,6,2,5,0,3,5}, {1,4,4,0,2,5,0,3,6,1,4,6}, {2,5,5,1,3,6,1,4,0,2,5,0}, {3,6,6,2,4,0,2,5,1,3,6,1}, {4,0,1,4,6,2,4,0,3,5,1,3}, {6,2,2,5,0,3,5,1,4,6,2,4}, {0,3,3,6,1,4,6,2,5,0,3,5}, {1,4,4,0,2,5,0,3,6,1,4,6}, {2,5,6,2,4,0,2,5,1,3,6,1}}; int C[7][6]; int main() { int l,c,x; //populando a tabela A1 x=-3; for(c=0;c<4;c++) for(l=0;l<28;l++, x++) if(x<1) A1[l][c]=-1; else if(x<100) A1[l][c]=x; else if(x==100) A1[l][c]=0; else A1[l][c]=-1; //populando a tabela A2 x=-19; for(c=0;c<4;c++) for(l=0;l<28;l++, x++) if(x<1) A2[l][c]=-1; else A2[l][c]=x; //populando a tabela C x=1; for(c=0;c<6;c++) for(l=0;l<7;l++, x++) if(x>37) C[l][c]=-1; else C[l][c]=x; int dia, mes, ano, resposta, linha; setlocale(LC_ALL, "Portuguese"); printf("\nEntre com uma data no formato DD/MM/AAAA: "); scanf("%d/%d/%d", &dia, &mes, &ano); if(ano<1901 || ano>2092) printf("Erro!! O ano deve ser de 1901 a 2092.\n"); //aqui você completa ...... //decida se vai usar A1 ou A2 //extraia os dois últimos dígitos para procurar em A1 ou A2 -----> encontrei uma linha para olhar na matriz B //com o mês eu terei uma coluna na matriz B (Janeiro é mês 1 mas corresponde à coluna 0, Fevereiro é mês 2 mas corresponde à coluna 1, ........Dezembro corresponde à coluna 11) //some o dia fornecido com o valor encontrado na matriz B //procure este último cálculo na matriz C ------> linha linha == 0 ---> Domingo // linha == 1 ---> Segunda // .... // linha == 6 ---> Sábado// return 0; }
-
Estou com dificuldades na questão abaixo: O usuário deve indicar uma posição dentro da matriz, e o programa deve informar a soma dos valores do ponto inicial (0,0) até ao ponto informado pelo usuário. A movimentação será deve ser feita por linhas. Exemplo: Usuário informou posição (1,1), para a matriz na imagem abaixo, o programa irá retornar o valor igual a 21, que é a soma dos valores 1 + 2 + 3 + 4 + 5 + 6. não estou conseguindo fazer 😞 #include <stdio.h> int main() { int matriz[4][3], i, j; for(i=0;i<4;i++){ for(j=0;j<3;j++){ printf("Linha[%d]Coluna[%d]= ", j, i); scanf("%d",&matriz[i][j]); } } for(i=0;i<4;i++){ for(j=0;j<3;j++){ printf("%d ",matriz[i][j]); } printf("\n"); } for(i=0;i<4;i++){ for(j=0;j<3;j++){ matriz[4][3]=matriz[4][3]+matriz[i][j]; } } for(i=0;i<4;i++){ for(j=0;j<3;j++){ printf("%d", matriz[i][j]); } printf("\n"); } return 0; }
-
Um amigo meu esta impossibilidade de usar o seu computador e esta com algumas dificuldades no final do seu semestre. Como eu estou de férias estou tentando ajudar ele com um programa, porém nem sei como começar. Ficaria muito grato se alguém pudesse dar uma ajuda, fazer uma partezinha do programa.... Muito Obrigado! Segue a proposta: Modelo DLA utiliza uma rede quadrada (matriz n × n com n > 100). 1. Cria uma lista de sitios ocupados ao redor do centro da rede (utilize uma matriz com zeros (vazio) e uns (ocupado)). 2. Determine aleatoreamente um sitio da rede que não é vizinho do agregado (utiliza a função rand()). 3. Iniciando o movimento neste sitio seguindo um movimento aleatorio ate a partícula sai do quadro (os elementos matricias com indices minimos ou máximos) ou se encontra na vizinhança de uma partícula do agregado (utilize a função rand() para mover um passo para cima ou para baixo ou para esquerda ou para a direita). 4. No caso que a partícula encontrou um lugar vizinho ao agregado atualize o agregado incluindo o novo sitio (os novos indices do elemento da matriz). 5. Execute a sequencia dos passos 2 at´e 4 at´e o comprimento da lista dos sitios ocupados alcance o valor n.
-
Olá pessoal. Não estou conseguindo resolver um problema em C, vocês podem me dar uma luz? Ficarei muito grato. Segue abaixo o enunciado. Faça um programa em C que leia dois valores inteiros, l e c, representando respectivamente a quantidade de linha e colunas de uma matriz. Leia os lxc valores reais e armazene nessa matriz. A leitura deverá ser feita dentro da função “void leMatriz (float matriz[][max], int l, int c)”. Em seguida, desenvolva a função “void imprimeMatriz (float matriz[][max], int l, int c)”, que deverá imprimir a matriz lida na ordem inversa da leitura. Observações: Seu programa deverá cuidar para que não sejam aceitos valores menores que 1 e maiores que 50 para a quantidade de linhas e de colunas. Defina max igual a 50. A saída deverá ser dada com apenas 1 casa decimal. Exemplos de Casos de Testes: case=Teste1 input= 3 4 1 2 3 4 5 6 7 8 9 10 11 12 output= 12.0 11.0 10.0 9.0 8.0 7.0 6.0 5.0 4.0 3.0 2.0 1.0 case=Teste2 input= 3 3 3 3.1 3.2 4 4.1 4.2 5 5.1 5.2 output= 5.2 5.1 5.0 4.2 4.1 4.0 3.2 3.1 3.0
- 1 resposta
-
- c
- linguagem c
-
(e %d mais)
Tags:
-
Boa noite, pessoal. Bom, tenho um código que atualiza os valores de uma matriz 2D 151 x 383, 6000 vezes. E preciso salvar cada uma delas numa matriz separada. Então a dimensão dessa matriz será 121x383x6000. Seria algo como: for (n=0;n<6000;n++){ for(i=0;i<151;i++){ for (k=0;k<383;k++){ P2 = 'calculos'; P3[n] = P2; }}} A dúvida é como construir a matriz P3 e como fazer a indexação dela no lugar dos colchetes... Grato!
-
Olá, estou a tentar fazer um programa que mostre um mês em formato de calendario (com dias da semana). Já consegui calcular o primeiro dia da semana (totaldias) e o último dia do mês (ultdia) baseado no mes e ano que o user insere. Também criei uma matriz com todos os dias possiveis (1 até 31) à qual chamei dias. Gostava de saber como a mostro em formato calendario! for (i=0; i-totaldias<0; i++) { cout<<" "; } for (l=0; l<5; l++) { for(c=0; c+totaldias<7; c++) { if(dias[l][c]<=ultdia) { printf("%5d", dias[l][c]); } else(cout<<" "); } totaldias=0; cout<<"\n"; } É assim que tenho tentado mas sem sorte :/
-
Boa noite a todo(a)s do Fórum , sou novo aqui e venho solicitar uma ajuda na criação de uma matriz para ser exibida na tela pelo java. Estou com dificuldades por nunca ter programado na vida, e confesso estar gostando muito por sinal. Mas foi passado uma tarefa na faculdade que achei até um pouco difícil e acredito que para vocês que já são experts não será, sem delongas vou ao assunto de pedido de ajuda. 1 - Eu preciso criar uma matriz que ela determine se é quadrada ou não. 2 - Se ela não for apresente uma mensagem de erro e feche o programa. 3 - Se ela for uma matriz quadrada, que determine se é do tipo : Diagonal, Identidade, Simétrica, Triangular superior ou Inferior. Então é isto gente, espero que consiga ajuda de vocês, eu estou usando o programa (eclipse). Tenham uma boa noite e fiquem com deus.
-
Sortear posições aleatórias numa matriz e trocá-las de valor
uma questão postou Victor Pasini C, C++
Boa tarde, estou criando um jogo de campo minado a pedido do meu professor e estou tendo dificuldade ao gerar bombas aleatórias na minha matriz 9x9. Eu utilizo a função rand(); com seed srand(time(NULL)); para gerar colunas e linhas aleatórias (i e j) que estão funcionando, mas no momento em que troco a matriz[j] pelo valor da bomba = -1, sempre me retorna uma matriz com todas as bombas numa mesma linha. Segue o código do programa e um print do que acontece. http://prntscr.com/keomvl void sorteiaBombas(int campoMinado[9][9]) { int i = 0, j = 0, bombas = 0; srand(time(NULL)); while(bombas < 10) { i = rand() % 10; j = rand() % 10; if(campoMinado[i][j] == 0) { printf("i = %d e j = %d\n", i, j); campoMinado[i][j] = -1; bombas++; } } } A matriz campoMinado é uma matriz preenchida apenas com 0's (nula) -
Olá amigos, eu me chamo Daniel e sou aluno de ADS, alguns dias atrás eu encontrei um código pela internet de um jogo da velha simples, o código funciona perfeita mente, porèm, eu queria adaptar o programa para executar novamente, e é ai que està o problema, eu não consigo fazer o programa zerar e reiniciar novamente a partida, vou inserir o código logo abaixo, desde já agradeço sua ajuda. P.S 1 Já tentei colocar system("cls") em quase todos os lugares possiveis do código, mas não resolveu. #include <iostream> #include <stdlib.h> using namespace std; char matriz[3][3] = {'1','2','3','4','5','6','7','8','9'}; int n; char jog = 'X'; char sair = 's'; bool s = true; void Jogo(){ system("cls"); cout << "\n JOGO DA VELHA\n\n"; for (int a=0;a<3;a++){ cout << "\t"; for (int j=0;j<3;j++){ cout << matriz[a][j] << " "; } cout << "\n"; } cout << "\n"; } void Entrada(){ int p; cout << "Digite um numero: "; cin >> p; if (p==1){ if(matriz[0][0] == '1'){ matriz[0][0] = jog; } else{ cout << "\nJogada invalida! Tente novamente.\n\n"; Entrada(); } } else if(p==2){ if(matriz[0][1] == '2'){ matriz[0][1] = jog; } else{ cout << "\nJogada invalida! Tente novamente.\n\n"; Entrada(); } } else if(p==3){ if(matriz[0][2] == '3'){ matriz[0][2] = jog; } else{ cout << "\nJogada invalida! Tente novamente.\n\n"; Entrada(); } } else if(p==4){ if(matriz[1][0] == '4'){ matriz[1][0] = jog; } else{ cout << "\nJogada invalida! Tente novamente.\n\n"; Entrada(); } } else if(p==5){ if(matriz[1][1] == '5'){ matriz[1][1] = jog; } else{ cout << "\nJogada invalida! Tente novamente.\n\n"; Entrada(); } } else if(p==6){ if(matriz[1][2] == '6'){ matriz[1][2] = jog; } else{ cout << "\nJogada invalida! Tente novamente.\n\n"; Entrada(); } } else if(p==7){ if(matriz[2][0] == '7'){ matriz[2][0] = jog; } else{ cout << "\nJogada invalida! Tente novamente.\n\n"; Entrada(); } } else if(p==8){ if(matriz[2][1] == '8'){ matriz[2][1] = jog; } else{ cout << "\nJogada invalida! Tente novamente.\n\n"; Entrada(); } } else if(p==9){ if(matriz[2][2] == '9'){ matriz[2][2] = jog; } else{ cout << "\nJogada invalida! Tente novamente.\n\n"; Entrada(); } } } void Alterna(){ if (jog == 'X') jog = 'O'; else jog = 'X'; } char Vencedor(){ // Jogador 1 if (matriz[0][0] == 'X' && matriz[0][1] == 'X' && matriz[0][2] == 'X') return 'X'; if (matriz[1][0] == 'X' && matriz[1][1] == 'X' && matriz[1][2] == 'X') return 'X'; if (matriz[2][0] == 'X' && matriz[2][1] == 'X' && matriz[2][2] == 'X') return 'X'; if (matriz[0][0] == 'X' && matriz[1][0] == 'X' && matriz[2][0] == 'X') return 'X'; if (matriz[0][1] == 'X' && matriz[1][1] == 'X' && matriz[2][1] == 'X') return 'X'; if (matriz[0][2] == 'X' && matriz[1][2] == 'X' && matriz[2][2] == 'X') return 'X'; if (matriz[0][0] == 'X' && matriz[1][1] == 'X' && matriz[2][2] == 'X') return 'X'; if (matriz[0][2] == 'X' && matriz[1][1] == 'X' && matriz[2][0] == 'X') return 'X'; //Jogador2 if (matriz[0][0] == 'O' && matriz[0][1] == 'O' && matriz[0][2] == 'O') return 'O'; if (matriz[1][0] == 'O' && matriz[1][1] == 'O' && matriz[1][2] == 'O') return 'O'; if (matriz[2][0] == 'O' && matriz[2][1] == 'O' && matriz[2][2] == 'O') return 'O'; if (matriz[0][0] == 'O' && matriz[1][0] == 'O' && matriz[2][0] == 'O') return 'O'; if (matriz[0][1] == 'O' && matriz[1][1] == 'O' && matriz[2][1] == 'O') return 'O'; if (matriz[0][2] == 'O' && matriz[1][2] == 'O' && matriz[2][2] == 'O') return 'O'; if (matriz[0][0] == 'O' && matriz[1][1] == 'O' && matriz[2][2] == 'O') return 'O'; if (matriz[0][2] == 'O' && matriz[1][1] == 'O' && matriz[2][0] == 'O') return 'O'; return 'e'; } int main(){ while (s == true){ Jogo(); while (true){ n++; Entrada(); Jogo(); if (Vencedor() == 'X'){ cout << "Jogador X Venceu!\n\n"; break; } else if(Vencedor() == 'O'){ cout << "Jogador O Venceu!\n\n"; break; } else if(Vencedor() == 'e' && n == 9){ cout << "Deu empate!\n\n"; break; } Alterna(); } cout << "Jogar novamente?\n(s/n): "; cin >> sair; if(sair == 's' || sair == 'S'){ s = true; } else if(sair == 'n' || sair == 'N'){ s = false; break; } } system("pause"); }
-
Bom dia! Como eu faço um update de dados selecionados de uma tabela e armazenados numa matriz. Ou como faço update com o resultado de um select? Grato!
-
Opa sou novo aqui, estou com dúvida em um exercício no de linguagem C, pede-se o seguinte: Matriz 6x6 Preencher a diagonal principal com os primeiros números da sequencia de fibonacci; Preencher a diagonal secundaria com os primeiros números primos; Preencher o triangulo superior com os primeiros números pares( não deve sob-escrever a diagonal); Preencher o triangulo inferir com primeiros numero impares (não deve sob-escrever a diagonal) A estrutura dever ser da seguinte maneira: #include <stdio.h> int main() { int cont_par=2; int matriz[6][6]; int cont_impar=1; int cont_primo=2; int cont_fibo=0; int i, j; //preenchendo com o valor 0; for(i=0; i<6; ++i){ for(j=0; j<6; ++j) { matriz[i][j]=0; } } for(i=0; i<6; ++i){ for(j=0; j<6; ++j) { if(i==j){ matriz[i][j]=cont_fibo; //preenchendo a diagonal principal; } } if(i+j==7){ //preenchendo apenas a diagonal secundaria; matriz[i][j]=cont_primo; } if(i<j){ //preenchendo o triagulo superior if(matriz[i][j]==0){ matriz[i][j]=cont_par; cont_par = cont_par+2;} } if(i>j){ //preenchendo o triagulo inferior/ if(matriz[i][j]==0){ matriz[i][j]=cont_impar; cont_impar+2; } } } } for(i=0; i<6; ++i){ for(j=0; j<6; ++j) { printf("%d ", matriz[i][j]); } printf("\n"); } return 0; } Não estou conseguindo gerar essa matriz, por favor alguém me ajuda?
-
Olá pessoal beleza ? Estou com um problema em meu código, na parte em que ele tem que mostrar o menor número digitado da matriz, ele sempre mostra como zero, já mudei o código várias vezes porém ainda não consegui resolver este problema, alguém ai pode me ajudar por favor ? O código é este: #include <stdio.h> #include <stdlib.h> #include <locale.h> int main() { int lin,col; int mat[3][3]; int menor=0; int pos1=0, pos2=0; setlocale(LC_ALL,"portuguese"); for(lin=0; lin<=2; lin++){ for(col=0; col<=2; col++){ printf("Digite um número para linha [%d] e um para coluna [%d]: ", lin+1, col+1); scanf("%d", &mat[lin][col]); } printf("\n"); } printf("\n Matriz\n\n"); for(lin=0; lin<=2; lin++){ for(col=0; col<=2; col++){ printf("%d\t ", mat[lin][col]); } printf("\n\n"); } for(lin=0; lin<=2; lin++){ for(col=0; col<=2; col++){ if(mat[lin][col] < menor){ menor = mat[lin][col]; pos1=lin; pos2=col; } } } printf("\n O número menor é: [%d]", menor); printf("\n\n A posição do menor número será: [%d][%d]", pos1+1,pos2+1); printf("\n\n"); system("pause"); return 0; }
-
Gente preciso de ajuda com esse exercício, pois estou fazendo e fica dando finalizar programa e o cmd fecha. "Crie um programa que leia o número de linhas e colunas de duas matrizes, bem como seus conteúdos e em seguida calcule o produto delas, mostrando o resultado na tela." Esse é meu código: #include <stdio.h> #define MAX 100 int main(void){ int m, n, a, b, matrizA[MAX][MAX], matrizB[MAX][MAX], i, j; printf("Informe a dimensao da matriz(m n):\n"); scanf("%d%d, &m, &n"); for(i=0 ; i<m ; i++) for(j=0 ; j<n ; j++){ printf("Informe a Matriz A[%2d][%2d]: ", i, j); scanf("%d", &matrizA[i][j]); } for (i = 0; i < a; i++) for (j = 0; j < b; j++) { printf("Informe a Matriz B[%2d][%2d]: ", i, j); scanf("%d", &matrizB[i][j]); } return 0; }
-
Olá pessoal beleza ? Estou com um problema em meu código, na parte em que ele tem que mostrar o menor número digitado da matriz, ele sempre mostra como zero, já mudei o código várias vezes porém ainda não consegui resolver este problema, alguém ai pode me ajudar por favor ? O código é este: #include <stdio.h> #include <stdlib.h> #include <locale.h> int main() { int lin,col; int mat[3][3]; int menor=0; int pos1=0, pos2=0; setlocale(LC_ALL,"portuguese"); for(lin=0; lin<=2; lin++){ for(col=0; col<=2; col++){ printf("Digite um número para linha [%d] e um para coluna [%d]: ", lin+1, col+1); scanf("%d", &mat[lin][col]); } printf("\n"); } printf("\n Matriz\n\n"); for(lin=0; lin<=2; lin++){ for(col=0; col<=2; col++){ printf("%d\t ", mat[lin][col]); } printf("\n\n"); } for(lin=0; lin<=2; lin++){ for(col=0; col<=2; col++){ if(mat[lin][col] < menor){ menor = mat[lin][col]; pos1=lin; pos2=col; } } } printf("\n O número menor é: [%d]", menor); printf("\n\n A posição do menor número será: [%d][%d]", pos1+1,pos2+1); printf("\n\n"); system("pause"); return 0; }
-
Boa tarde pessoal, desenvolvi esse algoritmo para verificar se uma matriz é inca ou não, ou seja se partindo do extremo superior esquerdo e seguindo em espiral o número seguinte é o sucessor inteiro do número anterior, meu algoritmo está dando que a matriz é errada quando eu não começo com o primeiro termo da matriz [1,1] sendo 1, gostaria de pedir um minuto da atenção e experiência de todos vocês sou grato desde já. algoritmo "Matriz Inca" var i,j,n,inicol,fimcol,inilin,fimlin,degrau:inteiro matriz:vetor[1..20,1..20] de inteiro eh_inca:logico inicio repita escreva("Escolha a dimensão da Matriz:") leia (n) se((n < 1)ou(n > 20))então escreval("A dimensão da matriz precisa estar entre 1 e 20") fimse ate ((n > 0 ) e (n < 21)) escreval("Matriz: ",n ," x ",n) escreval("Digite os numeros da Matriz abaixo:") para i de 1 ate n faca para j de 1 ate n faca escreval("Entre com o valor de matriz[",i,",",j,"]:") leia (matriz[i,j]) fimpara fimpara para i de 1 ate n faca escreval para j de 1 ate n faca escreva (matriz[i,j]) fimpara escreval fimpara inicol <-1 fimcol <-n inilin <-1 fimlin <-n degrau <-0 eh_inca <- verdadeiro enquanto ((eh_inca) e (inicol<fimcol) e (inilin<fimlin)) faca para i de inicol ate fimcol faca se (matriz[inilin,i] = degrau + 1) então degrau <- degrau + 1 senao eh_inca <- falso fimse fimpara inilin <- inilin + 1 para i de inilin ate fimlin faca se (matriz[i,fimcol] = degrau + 1) então degrau <- degrau + 1 senao eh_inca <- falso fimse fimpara fimcol <- fimcol - 1 para i de fimcol ate inicol passo -1 faca se (matriz[fimlin,i] = degrau + 1) então degrau <- degrau + 1 senao eh_inca <- falso fimse fimpara fimlin <- fimlin - 1 para i de fimlin ate inilin passo -1 faca se (matriz[i,inicol] = degrau + 1) então degrau <- degrau + 1 senao eh_inca<-falso fimse fimpara inicol<-inicol + 1 fimenquanto se (eh_inca) então escreval ("Matriz é inca") senao escreval ("Matriz não é inca") fimse
-
Olá pessoal, mais uma das questões difíceis para iniciante, estou tendo dificuldades para encontrar os erros no algoritmo que desenvolvi, conto com a colaboração de todos, e serei grato a toda dica construtiva de vocês que são mais experientes. #include <stdio.h> #include <stdlib.h> int main(){ int logico,i,j,n,inicol,fimcol,inilin,fimlin,degrau; int matriz[20][20]; do{ printf("Escreva a dimensao da matriz:"); scanf("%d",&n); if((n<1)||(n>20)){ printf("A dimensao da matriz precisa estar entre 1 e 20\n"); } }while((n<1) || (n>20)); printf("A matriz informada e do tipo %dX%d\n",n,n); printf("Digite os numeros da matriz abaixo:\n"); for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ printf("Entre com o valor de matriz["); printf("%d,",i); printf("%d]:",j); scanf("%d",&matriz[i][j]); } } for(i=1;i<=n;i++){ printf("\n"); for(j=1;j<=n;j++){ printf("%2d",matriz[i][j]); printf(" "); } printf("\n"); } inicol=1; fimcol=n; inilin=1; fimlin=n; degrau=0; logico=1; while((logico=1)&&(inicol<fimcol) && (inilin<fimlin)){ for(i=inicol;i=fimcol;i++){ if(matriz[inilin][i]=(degrau+1)){ degrau=(degrau+1); } else{ logico=0; } } fimcol=(fimcol-1); for(i=fimcol;i=inicol;i--){ if(matriz[fimlin][i]=(degrau+1)){ degrau=(degrau+1); } else{ logico=0; } } fimlin=(fimlin-1); for(i=fimlin;i=inilin;i--){ if(matriz[i][inicol]=(degrau+1)){ degrau=(degrau+1); } else{ logico=0; } inicol=(inicol+1); } if(logico=1){ printf("A matriz e inca"); } else{ printf("A matriz não e inca"); } return 0; } Até essa parte abaixo o algoritmo está executando ok. #include <stdio.h> #include <stdlib.h> int main(){ int logico,i,j,n,inicol,fimcol,inilin,fimlin,degrau; int matriz[20][20]; do{ printf("Escreva a dimensao da matriz:"); scanf("%d",&n); if((n<1)||(n>20)){ printf("A dimensao da matriz precisa estar entre 1 e 20\n"); } }while((n<1) || (n>20)); printf("A matriz informada e do tipo %dX%d\n",n,n); printf("Digite os numeros da matriz abaixo:\n"); for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ printf("Entre com o valor de matriz["); printf("%d,",i); printf("%d]:",j); scanf("%d",&matriz[i][j]); } } for(i=1;i<=n;i++){ printf("\n"); for(j=1;j<=n;j++){ printf("%2d",matriz[i][j]); printf(" "); } printf("\n"); }
-
Olá pessoal, esse é meu primeiro post aqui no fórum, preciso de uma ajuda com os exercícios abaixo. Estou começando agora a usar a linguagem C++, queria saber se vocês podem me ajudar com esses programas. Até fiz aqui mas não deu muito certo. 1. Dado um vetor de N elementos, determine o Maior elemento e Menor elemento do vetor. No final do processamento exibir os resultados. 2. Dados dois vetores, um contendo a quantidade e o outro o preço de 20 produtos, elabore um programa que calcule e exiba os seguintes resultados: - Faturamento - Faturamento Total que corresponde a somatória dos Faturamentos - Média dos Faturamentos - Quantos Faturamentos estão abaixo da média calculada 3. Dado uma Matriz de ordem 3x3, calcule a somatória da diagonal principal bem como a média, no final exibir os resultados. 4. Dado uma matriz de ordem 3x3, identifique o elemento da posição, (Linha 3 e Coluna 1), multiplique a matriz por este elemento gerando uma matriz resultante, no final exibir a matriz bem como o elemento encontrado. Desde já, agradeço a ajuda.
-
Bom dia, Boa tarde, e Boa noite a todos. Venho aqui para tentar esclarecer uma dúvida minha em que não estou conseguindo solucionar. Meu professor passou um exercício em que seria necessário criar uma matriz para armazenar 10 strings e depois ordena-las alfabeticamente, mas claro usando ponteiros. Eu vi algumas resoluções no fórum e só achei do tipo que usa o comando strcmp mas não é desse que preciso. Já fiz a parte do código para receber as strings e armazena-las na matriz, apenas não sei como proceder para orderna-la alfabeticamente com o uso de ponteiros. Se puderem ao menos me dar um norte ou um exemplo já ajudaria. Agradeço a qualquer um que tenha a disposição de ajudar. OBS.: Necessita ser obrigatoriamente na Linguagem C, e não em C++. OBS².: Aqui está o enunciado da questão: 1. Leia 10 strings para uma matriz de string. Ordene e imprima as strings em ordem alfabética usando ponteiros.
- 6 respostas
-
#include <stdio.h> #define linha 12 #define col 12 int main (void) { char OP; float M[linha][col],soma=0,div=0; int i,j; scanf("%c", &OP); // leitura da matriz for(i=linha-1; i>=0;i--) { for(j=col-1; j>=0;j--){ scanf("%f", &M[i][j]); } } // soma da parte requerida da matriz for(i=linha-1;i>=0;i--){ for(j=col-1;j>=0;j--) { if(j>i){ soma += M[i][j]; (int)div++; } } } // condicao para imprimir soma ou media if(OP=='S') printf("%.1f\n", soma); else printf("%.1f\n", soma/div); } A minha saída está diferente da saída correta para a soma de valores de 1 até 144. O valor correto é 6644.0 e a minha saída é 6358.0 Não consigo encontrar o erro. O problema pede para imprimir a soma dos numeros abaixo da diagonal secundária > https://www.urionlinejudge.com.br/repository/UOJ_1186.html.
-
Pessoal, desculpa minha ignorância. Sou novato na área da programação e estou quebrando a cabeça para fazer um exercício sugestionado por um professor, eu só estou conseguindo fazer o programa ler as dimensões porém quando chega na questão para calcular os elementos conforme se pede eu não consigo. Vocês poderiam me ajudar?? a questão é a seguinte: Construir um algoritmo que leia as dimensões de uma matriz e mostre os elementos dela, que deverão ser calculados e mostrados da seguinte forma: - Cada elemento deverá ter como valor o dobro da linha em que se encontra somado ao sucessor da coluna. - Deixar 2 espaços em branco entre um elemento e outro na horizontal; - Controlar as mudanças de linha. Muito Obrigado.
-
Pessoal, desculpa minha ignorância. Sou novato na área da programação e estou quebrando a cabeça para fazer um exercício sugestionado por um professor, eu só estou conseguindo fazer o programa ler as dimensões porém quando chega na questão para calcular os elementos conforme se pede eu não consigo. Vocês poderiam me ajudar?? a questão é a seguinte: Construir um algoritmo que leia as dimensões de uma matriz e mostre os elementos dela, que deverão ser calculados e mostrados da seguinte forma: - Cada elemento deverá ter como valor o dobro da linha em que se encontra somado ao sucessor da coluna. - Deixar 2 espaços em branco entre um elemento e outro na horizontal; - Controlar as mudanças de linha. Muito Obrigado.
-
E aí pessoal! Eu estou com uma dificuldade até simples... Eu gostaria de comparar elementos adjacentes de uma matriz (elementos que fica lado a lado um do outro ou em cima ou embaixo do elemento). Oque mais tá complicando é quando o elemento a se comparar está na primeira linha e/ou primeira coluna e/ou última linha e/ou última coluna. por exemplo, os elementos adjacentes de X são os 0's na matriz a seguir: 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 X 0 1 1 OU X 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 Desde já obrigado! (:
- 1 resposta
-
- adjacentes
- comparar
- (e %d mais)