Ir ao conteúdo
  • Cadastre-se

Victor Portugal

Membro Pleno
  • Posts

    86
  • Cadastrado em

  • Última visita

Tudo que Victor Portugal postou

  1. @devair1010 Então no caso basta eu adicionar um printf depois do loop que colocar os números em ordem crescente, certo?
  2. @Flávio Pedroza Nossa, verdade... Eu tinha falado isso lá em cima Aí fui fazer e fiz diferente KKKKKKKKKKKK Vou tentar aqui e já falo se deu certo adicionado 13 minutos depois Ficaria assim o código? #include <stdio.h> #include <locale.h> #include <time.h> #include <stdlib.h> #include <conio.h> int main (void){ srand(time(NULL)); setlocale(LC_ALL, "Portuguese"); int cont, num_max, limite_max, vet_num_random[30], i, aux; printf("\nDigite o limite máximo do intervalo que deve ser respeitado pelos números: "); scanf("%i", &limite_max); printf("\nDigite o total de números que serão gerados: "); scanf("%i", &num_max); printf("\nNÚMEROS GERADOS ALEATORIAMENTE DE ACORDO COM O LIMITE MÁXIMO!\n"); for(i = 0; i < num_max; i++){ vet_num_random[i] = rand () % limite_max; printf("%i ", vet_num_random[i]); } for(cont = 0; cont < num_max - 1; cont++){ for(i = cont + 1; i < num_max; i++){ if(vet_num_random[cont] > vet_num_random[i]){ aux = vet_num_random[cont]; vet_num_random[cont] = vet_num_random[i]; vet_num_random[i] = aux; } } } getch(); } Se sim, ele resolveu o problema dos zeros, porém, continua sem ordenar...
  3. @devair1010 beleza, vou tentar fazer isso com o srand. Só que agora eu rodei o programa mais vezes e ele não estava ordenando não... adicionado 7 minutos depois edit: Fiz umas alterações no código e consegui tirar 3 dos 4 zeros, mas agora o primeiro número é sempre 0 e não está ficando ordenado. Segue o código: #include <stdio.h> #include <locale.h> #include <time.h> #include <stdlib.h> #include <conio.h> int main (void){ srand(time(NULL)); setlocale(LC_ALL, "Portuguese"); int cont, num_max, limite_max, vet_num_random[30], i, aux; printf("\nDigite o limite máximo do intervalo que deve ser respeitado pelos números: "); scanf("%i", &limite_max); printf("\nDigite o total de números que serão gerados: "); scanf("%i", &num_max); printf("\nNÚMEROS GERADOS ALEATORIAMENTE DE ACORDO COM O LIMITE MÁXIMO!\n"); for(cont = 1; cont <= num_max; cont++){ for(i = cont + 1; i <= num_max; i++){ vet_num_random[cont] = rand () % limite_max; if(vet_num_random[cont] > vet_num_random){ aux = vet_num_random[cont]; vet_num_random[cont] = vet_num_random; vet_num_random = aux; } } printf("%i ", vet_num_random[cont]); } getch(); }
  4. @devair1010 Entendi, mas tipo, toda vez que eu rodo o programa, os 4 primeiros números gerados são 0, já rodei diversas vezes e em todas os 4 primeiros números foram o 0. De qualquer jeito, vou fazer essa alteração que você falou para ver no que dá, mas aí todos os números serão acrescidos em 1 né? Se por exemplo ele sortear 5, vai me dar o 6, certo? Aí essa parte do código ficaria assim: vet_num_random[cont] = rand () % limite_max + 1; É isso?
  5. @devair1010 @Flávio Pedroza então, eu fiz a alteração que vocês recomendaram - pelo menos eu acho, rs -, e ele tá imprimindo em ordem crescente, porém, apareceu outro problema. Os 4 primeiros números sempre são 0. Segue o código: #include <stdio.h> #include <locale.h> #include <time.h> #include <stdlib.h> #include <conio.h> int main (void){ setlocale(LC_ALL, "Portuguese"); int cont, num_max, limite_max, vet_num_random[30], i, aux; printf("Digite o limite máximo do intervalo que deve ser respeitado pelos números: "); scanf("%i", &limite_max); printf("\nDigite o total de números que serão gerados: "); scanf("%i", &num_max); printf("\nNÚMEROS GERADOS ALEATORIAMENTE DE ACORDO COM O LIMITE MÁXIMO!\n"); srand(time(NULL)); for(cont = 1; cont <= num_max; cont++){ vet_num_random[cont] = rand () % limite_max; for(i = cont + 1; i <= num_max; i++){ if(vet_num_random[cont] > vet_num_random[i]){ aux = vet_num_random[cont]; vet_num_random[cont] = vet_num_random[i]; vet_num_random[i] = aux; } } printf(\n"%i ", vet_num_random[cont]); } getch (); } O que será que pode ser o problema?
  6. @Flávio Pedroza @devair1010 acho que entendi. Eu criou um vetor para armazenar os números sorteados, aí eu tiro o loop de dentro do for que gera os números e dentro desse for eu coloco o vetor para receber os números certo? Aí depois do for eu faço o loop para ordenar, é isso?
  7. Boa tarde, estou com um problema no meu código que é o seguinte: estou tentando ordenar de forma crescente números aleatórios, porém, algo não está funcionando. Segue o código da forma como está agora: #include <stdio.h> #include <locale.h> #include <time.h> #include <stdlib.h> #include <conio.h> int main (void){ setlocale(LC_ALL, "Portuguese"); int cont, num_max, limite_max, aux, i; printf("Digite o limite máximo do intervalo que deve ser respeitado pelos números: "); scanf("%i", &limite_max); printf("\nDigite o total de números que serão gerados: "); scanf("%i", &num_max); printf("\nNÚMEROS GERADOS ALEATORIAMENTE DE ACORDO COM O LIMITE MÁXIMO!\n"); srand(time(NULL)); for(cont = 1; cont <= num_max; cont++){ for (i = cont + 1; i <= num_max; i++){ if(cont > i){ aux = cont; cont = i; i = aux; } } printf("%i ", rand () % limite_max); } getch (); } Se puderem me dar umas dicas do que fazer para resolver esse problema. Porque eu tentei com números pré-definidos e consegui, porém, fui tentar com números aleatórios e não consegui achar uma forma de ordená-los.
  8. Consegui fazer, mas usando um outro arquivo. Um arquivo sobre os sorteios da mega-sena, com o arquivo que eu tentei fazer de início eu não consegui fazer o tratamento dos dados e nem mostrá-los na tela após isso, enfim, o código para o arquivo da mega-sena ficou assim: #include<stdio.h> #include<stdlib.h> #include<string.h> #include<locale.h> struct sena{ int nsorteio; char data[10]; int numeros[6]; int ganhasena; float rateiosena; int ganhaquina; float rateioquina; }; int main(void){ setlocale(LC_ALL, "Portuguese"); struct sena s[2076]; FILE *f=fopen("megasena.txt", "r"); if(f==NULL){ printf("\nArquivo inexistente!\n"); return -1; } int i, j; float maior=0; i=0; while(!feof(f)){ fscanf(f, "%d %s", &s[i].nsorteio, s[i].data); for(j=0;j<6;j++){ fscanf(f, "%d", &s[i].numeros[j]); } fscanf(f, "%d %f %d %f", &s[i].ganhasena, &s[i].rateiosena, &s[i].ganhaquina, &s[i].rateioquina); i++; } int mat[60][2], aux1, aux2; for(i=0;i<60;i++){ mat[i][0]=(i+1); mat[i][1]=0; } for(i=0;i<2076;i++){ for(j=0;j<6;j++){ aux1=s[i].numeros[j]; mat[aux1-1][1]++; } } for(i=0;i<60;i++){ for(j=i+1;j<60;j++){ if(mat[i][1]<mat[j][1]){ aux1=mat[i][0]; aux2=mat[i][1]; mat[i][0]=mat[j][0]; mat[i][1]=mat[j][1]; mat[j][0]=aux1; mat[j][1]=aux2; } } } float maiorpremio; char str1[10]; char str2[10]; for(i=0;i<60;i++){ printf("\n%d=%d", mat[i][0], mat[i][1]); } for(i=0;i<2076;i++){ if(s[i].rateiosena>maior){ maior=s[i].rateiosena; strcpy(str2, s[i].data); } if(s[i].rateiosena*s[i].ganhasena>maiorpremio){ maiorpremio=s[i].rateiosena*s[i].ganhasena; strcpy(str1, s[i].data); } } printf("\nMaior prêmio = %.2f\n", maiorpremio); printf("\nData do maior prêmio: %s\n", str1); printf("\nMaior valor recebido = %.2f\n", maior); printf("\nData do maior valor recebido: %s\n", str2); } Depois vou tentar modificar esse código para usar nos arquivos do IBGE sobre o PIB dos municípios. Valeu aí! Caso alguém tenha umas dicas para modificação deste código, agradeço! Abraço.
  9. Fui pegar para tentar fazer o código aqui e me deparei com uma dúvida. Consegui fazer o código abrir o arquivo de boa, mas como eu faria para ler vários tipos de entradas?! Por exemplo, eu teria que ler uma string - nome do município - e um float - valor do PIB -. Estou com essa dúvida...
  10. @isrnick beleza, vou tentar fazer aqui e assim que terminar, volto com o resultado aqui. Valeu!
  11. Fala galera, boa tarde. Estou com um problema para resolver que consiste no seguinte: eu preciso ler um arquivo .txt e extrair dele algumas informações. No caso, seria um arquivo sobre o PIB dos municípios do RJ em 2015, e eu gostaria de extrair desse arquivo o seguinte: os 5 maiores PIBs e os 5 menores PIBs. Alguém teria uma ideia de como começar o código? Abraço!
  12. @isrnick então, acho que a sua dica resolveu o meu problema. Vou deixar o código completo abaixo, caso alguém tenha mais dicas para melhorar o código e caso alguém precisa do código em algum momento né... Valeu aí, parceiro. Abraço! Segue código: #include<stdio.h> #include<stdlib.h> #include<time.h> #include<math.h> struct cidade { char nome; float x, y, z; }; int main(int argc, char *argv[]) { //argc quantidade de argumentos e argv os argumentos int i, j, n, letra = 65; //65 e a letra A da tabela ASCII printf("\nQuantas Cidades? "); scanf("%d", &n); struct cidade cid[n]; //vetor de estrutura de cidades float distancia[n][n], x1, x2, y1, y2, z1, z2; srand(time(NULL)); for (i = 0; i < n; i++) { cid[i].nome = letra + i; //nome da cidade de A (65) ate A+n x1 = rand() % 100; //entre 0 e 99 x2 = (rand() % 20) + 1; //1 e 20 y1 = rand() % 100; y2 = (rand() % 20) + 1; z1 = rand() % 100; z2 = (rand() % 20) + 1; cid[i].x = x1 / x2; //coordenada x da cidade cid[i].y = y1 / y2; //coordenada y da cidade cid[i].z = z1 / z2; //coordenada z da cidade } for (i = 0; i < n; i++) { printf("\n%c(%.2f, %.2f, %.2f)", cid[i].nome, cid[i].x, cid[i].y, cid[i].z); //imprime as coordenadas da cidade } printf("\n\n"); for (i = 0; i < n; i++) { for (j = i; j < n; j++) { distancia[i][j] = sqrt((pow((cid[i].x - cid[j].x), 2) + pow((cid[i].y - cid[j].y), 2) + pow((cid[i].z - cid[j].z), 2))); //calculo da distancia por pitagoras distancia[j][i] = distancia[i][j]; //espelhar a matriz } } for (i = 0; i < n; i++) { printf("\t%c", letra + i); //imprime o cabecalho } printf("\n\n"); for (i = 0; i < n; i++) { printf("%c\t", letra + i); //imprime a primeira coluna com a letra da cidade for (j = 0; j < n; j++) { printf("%.2f\t", distancia[i][j]); //imprime a distancia entre cidades } printf("\n\n"); } int xMin, yMin, zMin; //armazena as coordenadas da menor distancia float menorValor, caminho[n][n]; //menor distancia e caminho a seguir for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { caminho[i][j] = 0; //inicializa a matriz de caminhos } } int todas = 0, k; char vetCam[n]; //nome das cidades printf("\nDe qual cidade deseja partir?\n0 a %d ", n - 1); scanf("%d", &i); int v = i; //cidade inicial tem que ser a final float tmp[n]; for (k = 0; k < n; k++) { tmp[k] = distancia[i][k]; //vetor de distancias temporarias distancia[k][i] = 0; //zerando a coluna da cidade de partida } while (todas < n) { vetCam[todas] = cid[i].nome; todas++; menorValor = 1000; for (j = 0; j < n; j++) { if ((distancia[i][j] < menorValor) && (distancia[i][j] != 0)) { xMin = i; yMin = j; menorValor = distancia[i][j]; } } i = yMin; caminho[xMin][yMin] = distancia[xMin][yMin]; if (n > todas + 1) { for (k = 0; k < n; k++) { distancia[k][i] = 0; } } else { caminho[i][v] = tmp[i]; } } printf("\nCAMINHOS\n\n"); for (i = 0; i < n; i++) { printf("\t%c", letra + i); } printf("\n\n"); for (i = 0; i < n; i++) { printf("%c\t", letra + i); for (j = 0; j < n; j++) { printf("%.2f\t", caminho[i][j]); } printf("\n\n"); } for (k = 0; k < n; k++) { printf("%c --> ", vetCam[k]); } vetCam[n - 1] = cid[v].nome; printf("%c", vetCam[n - 1]); printf("\n\n"); return 0; }
  13. @Cristiano.cbx estou cursando Engenharia da Computação na UCP, parceiro.
  14. @malloc_ Fala aí, então, a parte de encontrar a menor distância já está feito, eu estou com dificuldade de encaixar a terceira dimensão e principalmente a equação para calcular com 3 dimensões. Valeu aí! @isrnick No caso eu adicionaria o altura(Z) nas variáveis e depois substituiria a equação no código por essa que você mandou, certo? O código está funcionando direitinho para 2 dimensões. Se eu entendi o que você quis dizer, acho que sei como fazer. Vou tentar aqui depois e volto para passar o feedback, valeu aí. Abraço!
  15. @Cristiano.cbx Tranquilo, valeu. Conseguindo alguma coisa, só postar lá no tópico. Abraço!
  16. @Cristiano.cbx show. Abraço parceiro! Aproveitando que tem gente comentando neste tópico, vou deixar o link para um tópico que eu fiz no início do mês sobre um problema que eu não consegui resolver ainda. Se você e o @malloc_ puderem me ajudar com isso, agradeço muito. É um trabalho para a faculdade que vale 4 pontos, então, sabe como é né?! hahaha Segue o link para o tópico: Caixeiro Viajante com três eixos(X, Y e Z).
  17. @Cristiano.cbx dei uma modificada aqui, vê se isso te ajuda. #include<stdio.h> #include<stdlib.h> #include<string.h> #include<locale.h> int main(void){ setlocale(LC_ALL, "Portuguese"); int i; float soma, notas[4], media; char nome_aluno[30]; printf("Digite o nome do aluno: "); gets(nome_aluno); soma = 0; printf("Digite as 4 notas do %s: ", nome_aluno); for(i = 0; i <= 3; i++){ scanf("%f", &notas[i]); soma = soma + notas[i]; } media = soma / 4; printf("A média do %s é: %.2f", nome_aluno, media); if(media >= 5){ printf("\nO aluno %s está aprovado, boas férias!\n", nome_aluno); } else{ printf("\nO aluno %s está de recuperação!\n", nome_aluno); } system("pause"); }
  18. @Cristiano.cbx ah sim, entendi. Não tinha me ligado na parte do vetor das notas. Vou tentar aqui e caso eu consiga, envio aqui novamente.
  19. Fala amigo, beleza? Boa tarde! Então, vê se esse código aqui resolve o seu problema. Abraço! #include<stdio.h> #include<stdlib.h> #include<string.h> #include<locale.h> int main(void){ setlocale(LC_ALL, "Portuguese"); int i; float n1, n2, n3, n4, media; char nome_aluno[30]; printf("Digite o nome do aluno: "); gets(nome_aluno); printf("Digite as 4 notas do %s: ", nome_aluno); scanf("%f %f %f %f", &n1, &n2, &n3, &n4); media = (n1 + n2 + n3 + n4) / 4; printf("A média do %s é: %.2f", nome_aluno, media); if(media >= 5){ printf("\nO aluno %s está aprovado, boas férias!\n", nome_aluno); } else{ printf("\nO aluno %s está de recuperação!\n", nome_aluno); } system("pause"); }
  20. Fala pessoal, boa tarde. Estou com um trabalho para fazer e não estou conseguindo completá-lo, então, queria ver se vocês conseguem me ajudar. O trabalho consiste no código do caixeiro viajante com 3 dimensões, vou deixar o meu código com 2 dimensões aqui para olharem e se possível, me ajudarem a 'colocar a terceira dimensão' nele. Valeu! #include<stdio.h> #include<stdlib.h> #include<time.h> #include<math.h> struct cidade { char nome; float x, y; }; int main(int argc, char *argv[]) { //argc quantidade de argumentos e argv os argumentos int i, j, n, letra = 65; //65 e a letra A da tabela ASCII printf("\nQuantas Cidades? "); scanf("%d", &n); struct cidade cid[n]; //vetor de estrutura de cidades float distancia[n][n], x1, x2, y1, y2; srand(time(NULL)); for (i = 0; i < n; i++) { cid[i].nome = letra + i; //nome da cidade de A (65) ate A+n x1 = rand() % 100; //entre 0 e 99 x2 = (rand() % 20) + 1; //1 e 20 y1 = rand() % 100; y2 = (rand() % 20) + 1; cid[i].x = x1 / x2; //coordenada x da cidade cid[i].y = y1 / y2; //coordenada y da cidade } for (i = 0; i < n; i++) { printf("\n%c(%.2f, %.2f)", cid[i].nome, cid[i].x, cid[i].y); //imprime as coordenadas da cidade } printf("\n\n"); for (i = 0; i < n; i++) { for (j = i; j < n; j++) { distancia[i][j] = sqrt((pow((cid[i].x - cid[j].x), 2) + pow((cid[i].y - cid[j].y), 2))); //calculo da distancia por pitagoras distancia[j][i] = distancia[i][j]; //espelhar a matriz } } for (i = 0; i < n; i++) { printf("\t%c", letra + i); //imprime o cabecalho } printf("\n\n"); for (i = 0; i < n; i++) { printf("%c\t", letra + i); //imprime a primeira coluna com a letra da cidade for (j = 0; j < n; j++) { printf("%.2f\t", distancia[i][j]); //imprime a distancia entre cidades } printf("\n\n"); } int xMin, yMin; //armazena as coordenadas da menor distancia float menorValor, caminho[n][n]; //menor distancia e caminho a seguir for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { caminho[i][j] = 0; //inicializa a matriz de caminhos } } int todas = 0, k; char vetCam[n]; //nome das cidades printf("\nDe qual cidade deseja partir?\n0 a %d ", n - 1); scanf("%d", &i); int v = i; //cidade inicial tem que ser a final float tmp[n]; for (k = 0; k < n; k++) { tmp[k] = distancia[i][k]; //vetor de distancias temporarias distancia[k][i] = 0; //zerando a coluna da cidade de partida } while (todas < n) { vetCam[todas] = cid[i].nome; todas++; menorValor = 1000; for (j = 0; j < n; j++) { if ((distancia[i][j] < menorValor) && (distancia[i][j] != 0)) { xMin = i; yMin = j; menorValor = distancia[i][j]; } } i = yMin; caminho[xMin][yMin] = distancia[xMin][yMin]; if (n > todas + 1) { for (k = 0; k < n; k++) { distancia[k][i] = 0; } } else { caminho[i][v] = tmp[i]; } } printf("\nCAMINHOS\n\n"); for (i = 0; i < n; i++) { printf("\t%c", letra + i); } printf("\n\n"); for (i = 0; i < n; i++) { printf("%c\t", letra + i); for (j = 0; j < n; j++) { printf("%.2f\t", caminho[i][j]); } printf("\n\n"); } for (k = 0; k < n; k++) { printf("%c --> ", vetCam[k]); } vetCam[n - 1] = cid[v].nome; printf("%c", vetCam[n - 1]); printf("\n\n"); return 0; }
  21. Boa noite pessoal, estava procurando um notebook para comprar e me deparei com o Ideapad 320 e acabei me interessando por ele, aí achei o Ideapad 320 com i7 e GeForce 940MX, então fui perguntar sobre a memória RAM à um amigo meu, e ele me disse que o Ideapad 320 só suporta 12GB de RAM, então fui dar uma pesquisada no assunto, mas não achei nada sobre. Se vocês puderem sanar a minha dúvida, se realmente esse modelo só suporta 12GB RAM ou se meu amigo está enganado e ele acaba suportando até mais que 16GB. Obrigado!
  22. @pedrosouza Então acha que compensa eu pegar o Acer F5? E tipo, a Acer é uma marca boa? Não tem tantas complicações sobre problemas? Valeu!
  23. @pedrosouza Entendi, obrigado pela resposta. Então me tira outra dúvida aqui, sobre qual vale mais a pena, vou listar 3 modelos que me interessaram aqui e que estou na dúvida sobre qual comprar - levando em consideração tudo: desempenho da máquina para rodar jogos e programas mais pesados, sobre a qualidade da marca e principalmente o custo/benefício -, vou deixar o preço no qual eles se encontram nesse momento, se puder me ajudar na escolha - me dando dicas -, ficarei agradecido. ACER F5: R$ 3.115,47 ACER E5: R$ 3.347,07 LENOVO IDEAPAD 310: R$ 2.789,07
  24. Pessoal, bom dia. Estou com outra dúvida. Se puderem me ajudar, ficarei agradecido... A diferença de desempenho entre dois notebooks que possuem 8GB de RAM, processador i7 6500U e a única diferença está na placa de vídeo que são as seguintes: 1 possuí uma GeForce 940M com 4GB e o outro uma GeForce 920MX com 2GB - esse aqui a RAM é DDR4-, e a diferença do notebook que tem a 940M para o que tem a 920MX é de +R$ 558,00. A diferença de desempenho - em jogos e programas - compensa essa diferença de valor? Caso puderem responder, obrigado! Poderiam me falar também se esse notebook aqui é mais vantajoso do que os outros 2 citados?! Obrigado!

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!