Ir para conteúdo

lucas _vinicius

Members
  • Total de itens

    10
  • Registro em

  • Última visita

Reputação

1 Comum

Sobre lucas _vinicius

  • Data de Nascimento 06/11/1999

Informações Pessoais

  • Sexo
    Masculino
  1. lucas _vinicius

    exercício de laços

    Bem _Isis_ observei atentamente os pontos que você destacou e corrigi meu programa: #include <stdio.h> int main () { long int x,z,s1,s2,t1=0; puts ("\tNumeros amigaveis\n\n"); for (x=1;x<=100000;x++) { s1=s2=0; for (z=1;z<x;z++) if (x%z==0) s1+=z; for (z=1;z<s1;z++) if (s1%z==0) s2+=z; if (((x==s2)&&(x!=s1))&&((x!=t1)&&((s1-x)>0))) { printf ("\t%d \t| \t%d\n",x,s1) t1=s1; } } puts ("."); getchar(); return 0; } Eu não utilizei Funções por que o exercício era para treinar o raciocínio logico com laços,eu acho que está bom mas se tiver mais algum ponto a destacar pode falar... Você ajudou bastante!
  2. lucas _vinicius

    Comparação de 2 vetores

    Bem vamos lá.já que não conseguiu resolver os erros vou mostra-los detalhadamente: #include <stdio.h> // Só há necessidade de usar esta biblioteca pois a <conio.h> esta fora de uso; E a função system("pause") só funciona com a biblioteca <stdlib.h>.mas não vejo necessidade de usa-la// int main() { int vetA[5], vetB[8], vetC[8], i, j, total = 0; //Bem como te disse antes não tinha necessidade de usar a variável 'r';// printf("--- VETOR A ---\n\n"); printf("Informe 5 numeros: \n"); for(i = 0; i < 5; i++) //Laço para salvar os elementos no vetor A// { scanf("%d", &vetA[i]); } printf("--- VETOR B ---\n\n"); printf("Informe 8 numeros: \n"); for(i = 0; i < 8; i++) //Laço para salvar o elementos no vetor B// { scanf("%d", &vetB[i]); } for(i = 0; i < 8; i++) //Salva os elementos repetidos do vetor A no B e os salva no vetor C// { for(j = 0; j < 5; j++) { if(vetA[i] == vetB[j]) { vetC[i] = vetB[j]; total++; } } } if(total == 0) { printf("Nao ha valores iguais"); } else { total--; //decrementa 1 de 'total' pois ele faz 6 incrementos(0 á 5),mas o vetor C possui apenas 5 elementos (0 á 4)// printf("\n\nValores iguais: \n"); for(i = 0; i < total; i++) //laço para a repetição// { printf("\n%d", vetC[i]); } } getchar(); //Função para visualizar o resultado do programa fora do compilador// return 0; } Observe bem onde você errou!
  3. lucas _vinicius

    Comparação de 2 vetores

    Olá.bem para começar vamos observar alguns pontos: 1 - Para que ta servindo a variável inteira 'r=0'? 2 - Todo vetor começa sua contagem do '0' então se você o define assim 'vetA [5]' o for deve ser usado assim: for (i=0;i<5;i++) por que ele começa a contar do '0' ;('0' até '4' são 5 espaços alocados,isto é,você não usa o ultimo vetor por que nele fica um caractere nulo) 3 - Para que você usa o system("pause");?se for para ver a mensagem "pressione qualquer tecla para continuar..." beleza agora se for para ver o resultado do program fora do compilador recomendo que use a função "getchar();" da biblioteca <stdio.h>;a proposito a biblioteca do system(); e a <stdlib.h>,e a biblioteca <conio.h> já esta saindo de uso por isso recomendo que não a use... 4 - Quando for exibir o resultado utilizando a variável 'total' decremente 1 antes do for; Rodei seu program numa boa aqui apenas observando esses erros... Se não resolver sozinho posto os erros detalhados do programa,não posto logo por que você como programador tem que aprender a encontrar erros sozinho de preferencia...
  4. lucas _vinicius

    exercício de laços

    Olá pessoal,estou com um probleminha nesse exercício aqui: "Fazer um programa para encontrar todos os pares de números amigáveis entre 1 e 100000. Um par de números é amigável[/size] quando cada um deles é igual à soma dos divisores do outro."[/size] Bem eu como nuca tinha me deparado com uma atividade dessas fiz assim:[/size] #include <stdio.h> int main () { long int x,z,y,y1; x=y=y1=0; for (y=0,x=0;x<=100000;x++) { for (z=0;z<x;z++) if (x%z==0) y+=z; for (z=0;z<y;z++) if (y%z==0) y1+=z; if (y==y1) printf ("(%d %d) ",x,y); } return 0; } Obviamente o pc não consegue fazer a leitura de três laços for de 100000 um em seguida do outro ai da um treco(que eu axo que seria a falta de memoria talvez,ou o super uso dela forçando um subscrevimento na memoria << são apenas suposições),mas o fato é que não consigo pesar em um outro método para fazer esse exercício;Poderiam me ajudar?me dando pelo menos o raciocínio logico para faze-lo...
  5. lucas _vinicius

    Permutação de Números

    Olá, estou com problemas em um exercício que pede o seguinte: - Fazer um programa para receber dois números do tipo unsigned int do usuário e determinar se um número é permutação do outro ou não.Ex: 431 é permutação de 143, 42 é permutação de 204, 1211 é permutação de 1112, etc. Então minha duvida e só na logica mesmo,alguém poderia me dar uma dica de como fazer ,Não estou pedindo que vocês respondão só que me deem uma ajuda de como começar..
  6. lucas _vinicius

    Algoritmo para ler nome e idade

    Para começar tire o conio.h dos seus algoritimos.segundo você tem que saber matriz de string para facilitar o uso de linhas,ajeitei um pouco o seu algorítimo vou explicar por partes... primeiro as variaveis: #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char nome[20][100],homemvelho[1][100]; int idade,sexo,i,x,j,velho,cont=1; float media,soma_mulher,soma_id_mulher; - char nome tem '[20]' que sera um numero máximo de linhas e'[100]'que sera o numero máximo de caracteres,ou seja o tamanho máximo de um nome por linha; - homemvelho tem '[1]' que sera o limite de linhas(lembrando que char começa do '0',por isso serão 2 linhas) e tem '[100]' que é o limite do tamanho nome do homem mais velho; -o resto vc ja sabe 'i' e 'j' são variaveis dos 'for','x' sera variavel da posição do nome(você vera mais a frente) OBS: não tente censurar nomes nas variáveis,coloque apenas a primeira letra se não gostar,mas nunca símbolos pois o pc entendera como comando assim se você fizer isso --o ele ira decrementar a variável em -1,se quiser censurar com simbolos faça no printf; for (i=0;i<20;i++) { idade=0; sexo=0; printf ("\nDigite o nome do %d cliente: ",cont++); scanf("%s",nome[i]); printf ("\nDigite: [1] PARA MASCULINO / [2] PARA FEMININO."); scanf ("%d",&sexo); printf ("\nDigite a Idade: "); scanf ("%d",&idade); if ((sexo==1)&&(idade>velho)) { velho=idade; x=i; } else (sexo==2); { soma_id_mulher+=idade; soma_mulher++; } } No primeiro 'for' temos a variavel 'i' que fara ele ser repitido '20' vezes,com o formulario,'idade' e 'sexo' seram zerados sempre para o prixomo usuario,se não zerar ele sempre somara a idade anterior com a que o usuario ira inserir,o mesmo acontecera com o sexo; Outra mudança e na hora de digitar o nome do cliente,esta no scanf e que devemos adicionar o 'i' no char nome para o pc saber qual linha utilizar,assim se 'i' for 0 ele ira usar a 1 linha,se for 2 ira usar a segunda e assim vai Agora o 'if' e o 'else',o 'if' ira gravar a a idade do homem mais velho na variave toda vez que a idade ultrapassar a do cliente anterior,tambem ira salvar a linha do nome do home mais velho em x,mais na frente você vera para que;O 'else' ira incrementar a soma das mulheres e da idade das mulheres toda ves que o usuario digitar 2; strcpy(homemvelho[0],nome[x]); media=soma_id_mulher/soma_mulher; printf ("\n\tRELATORIO DE CLIENTES."); printf ("\n\nCLIENTES CADASTRADOS:\n"); Agora copiamos o nome do homem mais velho funciona assim: a variavel 'homemvelho[0]' sera o destino,sendo que ela gravara o nome na primeira linha do variavel;e 'nome[x]' e a variavel que ira mandar o nome,sendo que 'x' ira conter a linha onde tem o nome do homem mais velho; Temos dois printf que inicia um cabeçalho de finalização do programa; for (j=0;j<2;j++) { printf ("\n%s",nome[j]); } printf ("\n\nO Nome do Homem mais velho: %s",homemvelho[0]); printf ("\n\nA media das mulheres e de: %.1f",media); printf("\n\n"); system("pause"); Este 'for' ira iniciar a contagem exibindo linha por linha dos nomes digitados,repare que em 'nome[j]' esse 'j' e do for que ira ser incrementado mudando a linha de exibição,bem o resto axo que da para entender...
  7. lucas _vinicius

    Erro decomposição de fatores primos

    Sabe que depois que você falo isso fui da uma analisada e percebi que não precisava de um 'for' para fazer o incremento no fator primo,so precisava do teste;Então refiz o programa dese geito: #include <stdio.h> int main() { int vlr,fat,x,y; fat=2; printf ("digite um valor para ser decomposto em FATORES PRIMOS: "); scanf ("%d",&vlr); for (;;) //laço do calculo { if (vlr%fat==0) //caso seja uma divisão exata execulta { if (vlr/fat==1) //se tiver de resultado 1 finaliza toda a função { printf ("%d ""|"" %d\n",vlr,fat); break; } printf ("%d ""|"" %d\n",vlr,fat); vlr=(vlr/fat); //muda o valor da variavel pelo da divisão } else //se o calculo não for exato execulta { for (y=0,x=1;x<=fat;++x) //test do Fator Primo if (fat%x==0) y+=x; if (fat+1==y) { fat=y-1; //fat passa para o proximo Fator Primo } fat++; //incremento (substitui o for por isso } } return(0); } Esta funcionando perfeitamente...vlw você ajudou muito. :D
  8. lucas _vinicius

    Erro decomposição de fatores primos

    Olha eu fui da mais uma olhada no meu programa usando um pouco da logica do seu programa e descobri onde estava o erro agora tem outro erro num sei onde e esse,o erro do calculo estava nessa linha: for (cont;;cont++) { for (y=0,x=1;x<=cont;++x) if ((cont%x)==0) y+=x; if ((cont+1)==y) { cont=y; //aqui esta o erro eu estava atribuindo ao fator o valor de comparação,assim sempre iria dar um numero primo +1,sendo que 'y' era a soma dos divisores do numero;(solução: cont=y-1;) break; } } mas agora tenho outro erro alguém sabe onde é?e um "Unknown software exeption"
  9. lucas _vinicius

    C - laco de repeticao while

    Olha eu não sou bem um expert na verdade so sei ate onde você esta(estruturas de reptição)mas acho que o programa deveria ser assim: #include <stdio.h> int main () { float nota1, nota2,media; int apv=0,rpv=0; while ((nota1 > 0) || (nota2 >0)) { printf("Insira as duas notas (0 e 0 p/ finalizar)...: "); scanf(" %f %f", &nota1, &nota2); media = (nota1+nota2)/2; if (media == 0) { break; } else if (media < 60.0) { printf("REPROVADO\n\n\n"); rpv++; } else { printf("APROVADO\n\n\n"); apv++; } } printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n..........DADOS COLETADOS.......... "); printf("\n\nAprovados .......: %d",apv); printf("\nReprovados ......: %d\n\n", rpv); printf("................FIM................\n\n"); return(0); } a unica coisa que eu fiz foi mudar a codição while,para uma um pouco melhor,adicionei o if"break;" que serve para finalizar o laço quando o usuario digitar "0 e 0";não sei pq,se você digitar o float com "," ele ira fazer o loço infinito com todas as afirmações mas se for com "." ele rodara normalmente;assim 20,0 35,0 daram erro mas 20.0 35.0 iram funcionar,ainda sou novato como você por isso não sei a causa.
  10. lucas _vinicius

    Erro decomposição de fatores primos

    Então eu resolvi aprender linguagem c por conta própria ,e estou seguindo uma apostilha,já cheguei em estruturas de repetição então resolvi fazer alguns exercícios complexos para pegar mais o raciocínio da linguagem,e cheguei nesse exercício: Fazer um programa para receber um número do usuário e decompô-lo em fatores primos. e já fiz o seguinte: #include <stdio.h> int main() { int vlr,cont,x,y; cont=2; printf ("digite um valor para ser decomposto em FATORES PRIMOS: "); scanf ("%d",&vlr); for (;;) { if (vlr%cont==0) { if (vlr/cont==1) { printf ("%d ""|"" %d\n",vlr,cont); break; } printf ("%d ""|"" %d\n",vlr,cont); vlr=(vlr/cont); } else { for (cont;;cont++) { for (y=0,x=1;x<=cont;++x) if ((cont%x)==0) y+=x; if ((cont+1)==y) { cont=y; break; } } } } return(0); } o erro e que se o numero decomposto tiver o ultimo fator primo 2 ou 3 roda tudo bem,mas se for 5 ele simplesmente não fecha o laço,nem finaliza o programa,eu queria saber onde esta o erro,para se futuramente eu tiver um erro parecido eu já saber resolver;
×

Informação importante

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