Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''c''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Todas as áreas do Fórum

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Encontrado 114 registros

  1. Matheus William

    problema conversão/soma binários

    Eu estou com o seguinte problema: receber dois números decimais e convertê-los para binário e depois realizar a soma binaria dos números que foi convertidos (considerar números negativos). Eu consegui fazer a maior parte, mas a soma esta saindo errada. Quem puder me ajudar eu agradeço.Segue o código do programa ate agora: #include <stdio.h> #define na 16 int main() { int n,n1,r[na],r1[na],i,somav[na],vaium=0,invert[na],np=1; /*Lê o número*/ printf("\n Digite o primeiro numero: "); scanf("%d", &n); /* Utiliza um número de 16 bits como base para a conversão.*/ for(i = na-1; i >= 0; i--) { r[i] = (n >> i) & 1; /*Por meio do "e" lógico ele compara se o valor na posição mais à direita é 1 ou 0 e imprime na tela até reproduzir o número binário.*/ if(r[i] & 1) printf("1",r[i]); else printf("0",r[i]); } printf("\n Digite o segundo numero: "); scanf("%d", &n1); for(i = na-1; i >= 0; i--) { r1[i] = (n1 >> i) & 1; if(r1[i] & 1) printf("1",r1[i]); else printf("0",r1[i]); } /*for (i=na-1;i>=0;i--) vaium[i]=0;*/ if(n<0) { for(i=na-1;i>=0;i--){ if(r[i]==1) invert[i]=0; else if(r[i]==0) invert[i]=1; } for (i=na-1;i>=0;i--) r[i]=invert[i]+np+vaium; if(r[i]==2){ r[i]=0; vaium++; } } else if(n1<0){ for(i=na-1;i>=0;i--){ if(r1[i]==1) invert[i]=0; else if(r1[i]==0) invert[i]=1; } for (i=na-1;i>=0;i--) r1[i]=invert[i]+np+vaium; if(r1[i]==2){ r1[i]=0; vaium++; } } for(i=na-1;i>=0;i--){ somav[i]=r[i]+r1[i]+vaium; if((somav[i]==2) || (somav[i]==3)){ somav[i]=0; vaium++; } } printf("\n Soma dos numeros binarios:"); for (i=na-1;i>=0;i--) printf("%d",somav[i]%2); return 0; }
  2. Alan Neves

    Preciso da resolução desses exercícios..

    Eu preciso apenas das resoluções pois esse é um conteúdo um pouco avançado para as aulas que eu tive, e o professor orientou que nós tentássemos resolver ou se não conseguíssemos, tentar achar a resolução na internet para entendermos a lógica usada. 1- Escreva um algoritmo que calcule e escreva a soma dos dez primeiros termos da seguinte série: 2/500 - 5/450 + 2/400 - 5/350 + … 2-Uma agência de publicidade quer prestar serviços somente para as maiores companhias - em número de funcionários - em cada uma das classificações: grande, média, pequena e microempresa. Para tal, consegue um conjunto de dados com o código, o número de funcionários e o porte da empresa. Construa um algoritmo que liste o código da empresa com maiores recursos humanos dentro de sua categoria. Utilize como finalizador o código de empresa igual a 0.
  3. Eu preciso das resoluções pois esse é um conteúdo um pouco avançado para as aulas que eu tive, e o professor orientou que nós tentássemos resolver ou se não conseguíssemos, tentar achar a resolução na internet para entendermos a lógica usada. 1- Escreva um algoritmo que calcule e escreva a soma dos dez primeiros termos da seguinte série: 2/500 - 5/450 + 2/400 - 5/350 + … 2-Uma agência de publicidade quer prestar serviços somente para as maiores companhias - em número de funcionários - em cada uma das classificações: grande, média, pequena e microempresa. Para tal, consegue um conjunto de dados com o código, o número de funcionários e o porte da empresa. Construa um algoritmo que liste o código da empresa com maiores recursos humanos dentro de sua categoria. Utilize como finalizador o código de empresa igual a 0.
  4. Boa tarde Senhores(as)! O código-fonte a seguir é a miniaturização de um problema maior no qual estou trabalhando. Preciso imprimir os valores do vetor gerado pela função "fazVetor", na função "main". Porém, para que o código se assemelhe ao problema real no qual estou trabalhando, existem duas restrições que devem ser respeitadas. Estas estão comentadas no código a seguir. #include <stdio.h> #include <stdlib.h> #define TAM 3 int fazVetor(int **vet){ int *array = malloc(sizeof(int) * TAM); array[0] = 4; array[1] = 7; array[2] = 8; /* nesta função somente a linha a seguir pode ser alterada. */ *vet = array; } int main() { int **qq; /* Na função main, somente a linha a seguir NÃO PODE ser alterada. */ fazVetor(&qq); printf("\n--==[Valores do Vetor]==--\n\n"); for(int i = 0; i < TAM; i++){ printf(" %d", (qq[i])); } printf("\n\n"); return 0; } O único objetivo é a impressão dos valores do vetor na função "main". Respeitadas as devidas restrições. De antemão, muito obrigado! Edwar Saliba Jr.
  5. BeatrizCass

    União de vetores

    Boa noite! Preciso fazer um programa que faça a união de vetores mas estou confusa, alguém pode me ajudar? /* Faça um programa que leia duas sequências de números inteiros distintos e salve cada sequência em um vetor. Suponha que o número máximo de elementos de uma sequência é 50. Suponha que cada um destes vetores represente um conjunto contendo os elementos nele armazenados. O programa deve então salvar em um terceiro vetor o resultado da união dos dois primeiros vetores e imprimir o resultado. */ #include <stdio.h> #include <stdlib.h> int main(){ int vetorA[50], vetorB[50], i, m, j, uniao[100]; printf ("Digite o tamanho dos vetores (max 50): "); scanf ("%d", &m); for(i=0; i<m ;i++){ printf("Preenche o vetorA[%d] \n",i); scanf("%d",&vetorA[i]); } printf ("\n\n"); for(i=0; i<m; i++){ printf("Preenche o vetorB[%d] \n",i); scanf("%d",&vetorB[i]); } printf ("\n\n"); printf ("Imprimindo dados do vetorA [ "); for (i=0; i<m; i++){ printf ("%d ", vetorA[i]); } printf("]"); printf("\n\n"); printf ("Imprimindo dados do vetorB [ "); for (i=0; i<m; i++){ printf ("%d ", vetorB[i]); } printf("]"); printf("\n\n"); printf ("Uniao [ "); for(i=0; i<m; i++) for(j=0; j<m ;j++) if (vetorA[i] vetorB[j]) printf("]"); return 0; } Preciso de ajuda bem na hora de fazer a união... Não estou conseguindo pensar em como fazer sem repetir os números. Obrigada desde já
  6. Preciso fazer um programa que leia premissas e operadores, do tipo ^, v, ->, <-> para depois validar a proposição. Fiz os comandos de leitura das premissas usando getche(), mas no teclado não consegui um meio de inserir os operadores da lógica matemática para comparação das proposições. Poderiam me dar uma dica?
  7. Escreva um programa que calcule a média dos números digitados pelo usuário, se eles forem pares. O programa deve terminar a leitura se o usuário digitar zero. Isso foi o que fiz até agora, mas não deu muito certo: main(void){ setlocale(LC_ALL,"Portuguese"); int n1, n2, n3; float media; int i; printf("Digite o 1º número: "); scanf("%d", &n1); printf("Digite o 2º número: "); scanf("%d", &n2); printf("Digite o 3º número: "); scanf("%d", &n3); while (n1%2 ==0 && n2%2 ==0 && n3%2 == 0) { media = (n1 + n2 + n3) } printf("%d", media); return 0; system ("pause"); }
  8. Olá à todos!!! Em um listView, carrego o conteúdo do banco de dados (O bd esta em uma thread em backgroud e carrega em tempo satisfatório), como o conteúdo é grande, leva um tempo para o componente ser preenchido. Como fazer para preencher apenas a parte visível na tela e ir preenchendo na medida que role o scroll? Flw!!!
  9. Manu Oliveira

    Vetor x Struct

    Vetor é um conjunto de variáveis subordinadas a um único nome e struct também é um conjunto de variáveis subordinadas a um único nome. Meu professor pediu para diferencia -las. mais estou com dificuldade.
  10. Leonardo B. Tosin

    PDF para TXT

    Bom dia galera. Estou fazendo um projeto que necessito fazer a leitura de arquivo PDF e converter para TXT. Toda parte de programação é tranquila, sem problemas (abrir arquivo....), problema é só no ending do PDF, que quando abre ele em algum outro meio fica com os caracteres inlegíveis. O mais longe que consegui chegar foi converter por meio de plugins de editores de texto(Notepad++, SUblime Text), os caracteres de ASC II para Hexadecimal, mas não sei o que fazer a partir daí. Se alguém saber de alguma maneira, biblioteca, já é de grande ajuda. Atenciosamente, Leonardo.
  11. Galera! Preciso de um programa em linguagem C ou C ++ que faça binômios de Newton de grau N usando Triângulo de Pascal para resolver os índices!   O prof quer que digite o grau e apareça a sequência de binômios!  Alguem consegue me ajudar?? Urgente!
  12. Galera! Preciso de um programa em linguagem C ou C ++ que faça binômios de Newton de grau N usando Triângulo de Pascal para resolver os índices!  O prof quer que digite o grau e apareça a sequência de binômios!  Alguem consegue me ajudar?? Urgente!
  13. Maicon Cesar

    Programação em C

    Olá Pessoal, tenho dificuldades em programar em C pois faz muito tempo que eu não programo nesta linguagem, tenho alguns exercicios para resolver e se alguém pude me ajudar fico agradecido. 1. Um número n é primo caso ele não seja divisível por nenhum outro número que esteja no intervalo [2..n-1]. Ou seja, 5 é um número primo porque ele não é divisível pelos valores 4, 3 e 2. Por outro lado, 8 não é primo pois ele é divisível por 4 e
  14. henrique-menna

    Duvida

    Boa noite professora, gostaria de tira duas duvidas em relação a C, a primeira é que tenho que comparar um vetor de char com outro, para que onde tenha uma letra igual ele fique na posição ex Char letra [2] [26]={'a','b,'c'}, o segunda seria uma frase onde se tive essas letras ele ia comparar, só que essas letras iam ser comparadas com relação ao numero iguais que se repete as letras, não sei se a senhora me entendo. A segunda duvida é como salvar isso e mostra a frase, como se fosse uma descriptografia. tem como fazer isso?
  15. henrique-menna

    Análise Criptográfica

    Escrever um programa, em linguagem C, que permita decifrar um determinado texto, escrito em língua portuguesa e que foi cifrado por um método de substituição mono-alfabético. Para se construir o programa suponha-se que a sequência seguinte apresenta a ordem decrescente (da esquerda para a direita) da frequência dos caracteres na língua portuguesa: a e o s r d n i t m u l c v p g q b f h j x z k y w consegue fazer para descobri a posição de cada letra, só que isso não resolve, queria pegar a Letra exemplo a letra A que é C, e mostrar a C na tela, depois ordenar ela para fazer a frases #include <stdio.h> #include <stdlib.h> #include <string.h> void cript(char pl[]){ char chave []= "wmatkzinlbhxgpefcjosqrvduy"; char Mensagem[] = "cscmxcszfsocmfzscssjncwcgfspezgcfkjgznvcwbmcjcwesj"; system("cls"); printf("CRIPTOGRAFADO: "); for (int i=0; i<strlen(pl); i++){ if (pl[i] == ' '){ printf(" "); } for (int j=0; j<strlen(chave); j++){ if ((pl[i] == chave[j]) || (pl[i] == Mensagem[j])) { printf("[%d]",j+1); } } } } int main(){ char palavra[25]; printf("Informe a palavra: "); gets(palavra); cript(palavra); fflush(stdin); getchar(); }
  16. float

    Exercício C++ (Treinando)

    Olá... Baixei uma lista de exercícios aqui para praticar em C++, e travei no penúltimo exercício. Como podem ser abaixo, não sei como fazer para "misturar" latas e galões, e exibir ao usuário... Será que alguém pode dar uma força aqui? #include <iostream> #include <stdlib.h> #include <tgmath.h> using namespace std; /********************************************************************** * Um programa para uma loja de tintas, que peça o tamanho em * * metros quadrados da área pintada. Considere que a cobertura da * * tinta é de 1 litro para cada 6 metros e que a tinta é vendida em * * latas de 18 litros, que custam R$80,0 ou em galões de 3,6 litros * * que custam R$25,0. Informe ao usuário: * * A quantidade de latas necessárias; * * O preço, considerando: (o objetivo é chegar ao menor preço) * * Comprar apenas Latas * * Comprar apenas galões * * Misturar latas e galões * * Acrescente 10% de folga e sempre arredonde os valores para cima * **********************************************************************/ int main() { // Corrigir locales: setlocale(LC_ALL, ""); // Declarar variáveis: float area; float litros; int latas; int galoes; // Atribuir dados: cout << "Área (m²): "; cin >> area; litros = ((area / 6) * 1.1); // Acrescentados 10% de folga... latas = (litros / 18); galoes = (litros / 3.6); // Para não faltar tinta (arredondando para cima): if (fmod(litros,18) != 0) { latas++; galoes++; } // Exibir dados de saída: system("cls"); cout << "Em " << area << "m² são necessários " << litros << "L de tinta"; cout << "\n\nLatas: " << latas << "\t|\tPreço: R$" << (latas * 80); cout << "\nGalões: " << galoes << "\t|\tPreço: R$" << (galoes * 25); }
  17. Pavolin

    [AJUDA]Sequencia de numeros em um vetor

    Bom dia, Estou necessitando de ajuda em um problema que tenho que resolver urgente. Os números de Fibonacci constituem uma sequência de números na qual os dois primeiros elementos são 0 e 1, e os demais, a soma dos dois elementos imediatamente anteriores na sequência. Como exemplo, a sequência formada pelos 10 primeiros números de Fibonacci é: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34. Faça um programa em C para calcular e imprimir os 20 primeiros números da série. eu pensei em por em um vetor e somar a posição anterior com a atual, mas tudo que faço não esta dando certo alguém pode me ajudar? obs: pensei em ponteiro mas não manjo de ponteiro.
  18. Bruno Rafael

    ERRO NA ORDENAÇÃO DA LISTA LIGADA

    Programa está inserindo normalmente, mais não está ordenando e nem mostrando os itens ordenados. obs1: Usando bubblesort obs2: ordenando primeiro por nome e depois por idade #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct lista { int qtd; struct Aluno * inicio; }lista; typedef struct Aluno { char nome[30]; int idade; struct Aluno * prox; }Aluno; lista * aloca_lista(); Aluno * aloca_aluno(); int inserir(lista *l, char * nome, int idade); void mostrar(lista *l); int main() { char aux[30]; int i,aux2,aux3,aux4,tam=3,pass,trocou; Aluno * aluno[3]; lista * l1; l1 = aloca_lista(); aux4 = l1->inicio; int idade; char nome[30]; for(i=0; i<3; i++) { printf("\nDigite o nome do aluno[%d]: ",i+1); fflush(stdin); gets(nome); printf("\nDigite o numero: "); fflush(stdin); scanf("%d",&idade); inserir(l1,nome,idade); } trocou = 1; for(pass=0; pass<tam-1 && trocou==1; pass++) { trocou = 0; for(i=0; i<tam-pass-1; i++) { if(strcmp(aluno[i]->nome,aluno[i+1]->nome) == 0) { if(aluno[i]->idade > aluno[i+1]->idade) { aux2 = aluno[i]->idade; aluno[i]->idade = aluno[i]->prox->idade; aluno[i]->prox->idade = aux2; strcpy(aux,aluno[i]->nome); strcpy(aluno[i]->nome,aluno[i+1]->nome); strcpy(aluno[i+1]->nome,aux); trocou = 1; } } else if(strcmp(aluno[i]->nome,aluno[i+1]->nome)>0) { aux3 = aluno[i]->idade; aluno[i]->idade = aluno[i+1]->idade; aluno[i+1]->idade = aux3; strcpy(aux,aluno[i]->nome); strcpy(aluno[i]->nome,aluno[i+1]->nome); strcpy(aluno[i+1]->nome,aux); trocou = 1; } } } printf("\nmostrando:\n\n"); mostrar(l1); return 0; } lista * aloca_lista() { lista * novo; novo = (lista*)malloc(sizeof(lista)); novo->qtd = 0; novo->inicio = NULL; return novo; } Aluno * aloca_aluno() { Aluno * novo; novo = (Aluno*)malloc(sizeof(Aluno)); novo->idade = 0; strcpy(novo->nome," "); novo->prox = NULL; return novo; } int inserir(lista *l,char * nome, int idade) { Aluno * novo, * aux; novo = aloca_aluno(); novo->idade = idade; strcpy(novo->nome,nome); if(l->inicio == NULL) { l->inicio = novo; } else { aux = l->inicio; while(aux->prox != NULL) { aux = aux->prox; } aux->prox = novo; } l->qtd++; return 1; } void mostrar(lista *l) { Aluno * aux; aux = l->inicio; while (aux != NULL) { printf("\nNome: %s",aux->nome); printf("\nIdade: %d",aux->idade); aux = aux->prox; } }
  19. Ricardo Reis

    Pelo amor de Deus me ajudem

    Escreva um programa simples de reserva de bilhetes de linha aérea. O programa exibe um menu (linha de comando) com as seguinte opções: reservada de bilhete, cancelamento de bilhete, verificação de reserva de um bilhete e exibição dos passageiros. A informação de um determinado voo é mantida em ordem alfabética numa lista ligada de nomes. Não coloque limite no número de voos. Crie uma lista ligada de voos com cada nó incluindo um ponteiro para uma lista para uma lista ligada de passageiros.
  20. belylorena

    Código calcular polinômio interpolador

    Ajudem me por favor, preciso de um programa, na linguagem de programação C, que calcule numericamente os coeficientes do polinômio interpolador. 1. Descrição Geral do Código a. O programa deverá identificar os coeficientes do polinômio interpolador segundo cada um dos métodos abaixo: i. Método de Lagrange ii. Método de Newton iii. Método de Gregory-Newton (limitado a tabelamentos de pontos equidistantes). 2. Entrada do código a. O programa deverá ler um arquivo de texto contendo o número de pontos do tabelamento e os pontos do tabelamento (escritos em notação científica como mostrados abaixo). b. Exemplo de arquivo de entrada: linha 1: 4 linha 2: -1.000000E+00 -2.00000E+00 linha 3: +2.000000E+00 +3.00000E+00 linha 4: +3.000000E+00 +8.00000E+00 linha 5: +4.000000E+00 +1.60000E+01 3. Saída do programa a. O programa deve imprimir em cada linha respectivamente: a potência, seguido dos coeficientes calculados por Lagrange, Newton e Gregory-Newton. Os coeficientes devem ser impressos em notação científica, com 6 casas decimais. Como mostrado abaixo Lagrange Newton Gregory-Newton a00 +1.000000E+00 +1.000000E+00 +1.000000E+00 a01 -1.000000E+02 -1.000000E+02 -1.000000E+02 4. Outras especificações do programa: a. Todas as variáveis reais devem ser declaradas com dupla precisão. b. O tabelamento deve ter entre 2 e 100 pontos. Caso esteja fora dessa faixa, o programa deve avisar que o arquivo está fora do escopo do projeto, perguntando se ele deseja realizar um novo cálculo ou se deseja encerrar o programa. c. O programa deve pedir ao usuário o nome do arquivo que contém os dados do tabelamento; i. Este arquivo deve estar na mesma pasta do código executável; ii. O programa deve permitir que o usuário realize novos cálculos. Após imprimir os resultados, ele deve perguntar se o usuário deseja executar um novo cálculo, ou se deseja encerrar o programa. ... an -3.400000E-02 -3.400000E-02 -3.400000E-02 obs: caso o método de Gregory-Newton não seja possível de ser calculado, sua coluna virá preenchida com zeros, da forma +0.000000E+00.
  21. GabrielSI19

    Mudar posições de um vetor

    Boa tarde, estou fazendo um algorítimo mas ele não roda 100% da maneira que devia. Leia um vetor de 20 posições e o compacte, ou seja, elimine as posições com valor zero avançando uma posição com os valores subsequentes do vetor. Dessa forma, todos os "zeros" devem ficar para o final do vetor. O que acontece é que se eu digitar apenas um índice de valor 0 ele é enviado para o final do vetor, porém se houverem mais de dois índices com o valor 0, o primeiro toma a posição final do vetor mas os outros continuam no mesmo lugar. Alguém pode me ajudar?? #include <iostream> #include <stdlib.h> #include <math.h> #include <locale.h> #include <stdio.h> #include <string.h> int main (void) { setlocale(LC_ALL,"Portuguese"); int vet[20]; int i,aux; for(i=0;i<20;i++) //entrada de dados { printf("Digite o valor da posição %d do vetor: ",i); scanf("%d",&vet[i]); } for(i=0;i<20;i++) //operação realizada { if(vet[i]==0) { aux=vet[i]; vet[i]=vet[i+1]; vet[i+1]=aux; } } for(i=0;i<20;i++){ printf("VetorFinal [%d] = %d\n",i,vet[i]); } }
  22. Cristian Kirsch Foesch

    Preencher uma struct com scanf

    Galera segunte como não encontrei o forum de C, por isso estou postando aqui Eu quero preencher uma struct usando o scanf logo antes de digitar o ano para descobrir o semestre, e imprimir junto com o resultado (aprovado ou reprovado), mas não estou conseguindo, pode ajudar? Gratidão /*seminario Comandos = if, switch Funções = soma, troca Vetores e tipo construído Como criar e preencher estrutura*/ #include <stdio.h> #include <stdlib.h> typedef struct{ //Tentativa de criar e preencher a struct char Nome; }Nome; float media (int n, float *vnotas); //Declarando a função media int main (void) { float vnotas[4]; int semestre; float media_notas; int i; for (i = 0; i < 4; i++) //Leitura das medias { printf("Digite os valores das notas: "); scanf("%f", &vnotas[i]); } printf("Digite o ano de ingresso para saber em que semestre o aluno esta:\n"); scanf("%d", &semestre); if(semestre <2017){ printf("error 404\n"); printf("Semestre inserido invalido\n"); } switch( semestre ){ case 2017 : printf("O aluno esta no Segundo semestre\n"); break; case 2018 : printf("O aluno esta no Primeiro semestre\n"); break; } //Chamada da função media_notas = media(4,vnotas); printf ( "\nMedia = %.1f \n", media_notas ); // Se a media for maior que 7, imprime que o aluno esta aprovado if(media_notas >=7){ printf("Aluno Aprovado\n"); printf("O aluno pode prosseguir para o proximo semestre\n");} // Se a media for menor que 7, imprime que o aluno esta repovado else{ printf("Aluno Reprovado\n"); printf("O aluno deve refazer a materia ou fazer a resolucao\n\n");} system("pause"); return 0; } /*Função para cálculo da média Parâmetros: Recebe a quantidade de elementos n Recebe o endereço inicial do vetor notas em *vnotas Retorno: Retorna a media na variavel m */ float media (int n, float *vnotas) { int i; //Realiza a soma das notas float m = 0, soma = 0; for (i = 0; i < n; i++) soma = soma + vnotas[i]; //Realiza a divisão das notas pelo numero de elementos m = soma / n; //Retorna a media return m; } Nome SetNome(char Nome){ printf("Digite o nome do Aluno\n"); scanf("%c", &Nome); }
  23. Carol Aisó

    Ajuda com Algoritmo em C

    resolvido
  24. Lelre Ferreira

    Verificar se matriz é simétrica ou não "Erro de lógica."

    Boa noite a todos. Estou com uma atividade no qual necessito informar se a matriz é simétrica ou não com base nos valores digitados pelo usuário. O meu código está meio caminho andado. Uma matriz simétrica é a matriz na qual os valores abaixo da diagonal principal são iguais os valores acima da diagonal principal. Logo pensei, se (i < j) valores acima da diagonal e (i > j) valores abaixo da diagonal. Fiz os testes em um FOR, onde se as condições atenderem os requisitos os valores seriam armazenados em vetores distintos, um vetor para valores acima da diagonal e outro vetor para valores abaixo. Depois eu ia comprar os dois vetores para ver se os valores são iguais mas me deparei com um erro de lógica. Vou postar o código e comentar o erro. #define TAM 3 #include <stdio.h> #include <stdlib.h> #include <locale.h> void receberMatriz(int matriz[TAM][TAM]); void acimaDiagonal(int matriz[TAM][TAM], int acimaD[TAM]); void abaixoDiagonal(int matriz[TAM][TAM], int abaixoD[TAM]); void TesteValorVetor(int matriz[TAM][TAM], int acimaD[TAM], int abaixoD[TAM]); int main(void) { setlocale(LC_ALL, ""); int matriz[TAM][TAM] = {0}; int abaixoD[TAM] = {0}; int acimaD[TAM] = {0}; receberMatriz(matriz); acimaDiagonal(matriz, acimaD); abaixoDiagonal(matriz, abaixoD); TesteValorVetor(matriz, acimaD, abaixoD); return 0; } void receberMatriz(int matriz[TAM][TAM]) { int i, j; for(i = 0; i < TAM; i++) { for(j = 0; j < TAM; j++) { printf("Insira valor pos. [%i][%i]: ", i, j); scanf("%i", &matriz[i][j]); } } } void acimaDiagonal(int matriz[TAM][TAM], int acimaD[TAM]) { int i, j; for(i = 0; i < TAM; i++) { for(j = 0; j < TAM; j++) { if(i < j) { acimaD[j] = matriz[i][j]; } } } } void abaixoDiagonal(int matriz[TAM][TAM], int abaixoD[TAM]) { int i, j; for(i = 0; i < TAM; i++) { for(j = 0; j < TAM; j++) { if(i > j) { abaixoD[j] = matriz[i][j]; } } } } void TesteValorVetor(int matriz[TAM][TAM], int acimaD[TAM], int abaixoD[TAM]) { int i, j; system("cls"); for(i = 0; i < TAM; i++) { for(j = 0; j < TAM; j++) { printf("[%i] ", matriz[i][j]); } printf("\n"); } printf("\n"); for(i = 0; i < TAM; i++) { printf("[%i]", acimaD[i]); } printf("\n"); for(i = 0; i < TAM; i++) { printf("[%i]", abaixoD[i]); } } Nas funções: void acimaDiagonal(int matriz[TAM][TAM], int acimaD[TAM]) { int i, j; for(i = 0; i < TAM; i++) { for(j = 0; j < TAM; j++) { if(i < j) { acimaD[j] = matriz[i][j]; } } } } void abaixoDiagonal(int matriz[TAM][TAM], int abaixoD[TAM]) { int i, j; for(i = 0; i < TAM; i++) { for(j = 0; j < TAM; j++) { if(i > j) { abaixoD[j] = matriz[i][j]; } } } } Eu faço a verificação (i < j), acima do diagonal e vise-versa e então armazeno em um vetor. Quando mando mostrar o vetor para ver quais valores tenho lá. Supondo que eu coloque 1, 2, 3, 4, 5, 6, 7, 8, 9... Os valores deveriam ser para o primeiro vetor: [2][3][6] referente aos valores acima da diagonal principal. E [4][7][8] valores abaixo da diagonal principal... Mas ao invés disso o código está me retornando o seguinte: [0][2][6] e [7][8][0]... Ou seja, não está atribuindo alguns valores. A11, A12, A13 A21, A22, A23 A31, A32, A33 Eu identifiquei um erro, na primeira função void acimaDiagonal() quando ele faz a primeira verificação no A11, como a condição se só atribui se for i < j, na primeira casa do primeiro vetor ele ignora qualquer alteração deixando o [0]... Como posso corrigir isso? Fui claro na minha dúvida?
  25. estou utilizando o matlab mas a linguagem é c puro né. Eu quero simular uma onda que bate na parede de um duto e reflete. igual à imagem anexada
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.