-
Posts
6.252 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por devair1010
-
-
@Random Guy dá . ! , programas em java ocupam de 20 a 80 mb , então se seu pc tiver 1 GB de ram ele consegue sim compilar o código de um programa , e dependendo do tipo de java que você usar , como o JME , pode programar até mesmo um MicroProcessador pic que tem 1KB de memória .
-
@Gustavo Alves7 conforme explicado nesse link :
https://pt.stackoverflow.com/questions/389799/É-possível-passar-um-vetor-como-parâmetro-no-visualg
o vetor no visualG 3.0.6.5 é um tipo de estruturado e não pode ser passado como parâmetros , porém você pode criar uma função , que serve de subrotina sem enviar o vetor pois no visualG as variáveis usadas no bloco principal do compilador , que é tudo que esteja entre o "Inicio e o Fimalgoritmo" , precisam ser criadas lá no início do código na seção "Var" e portanto são globais e assim podem ser acessadas em qualquer local do código , e a subrotina / função fará a ordenação dos números e ao retornar poderão ser escritos .
e seu código ficaria assim :
Algoritmo "EXE4SUBROTINAS_02" Var Vet : Vetor[1..10] de Inteiro L, A, Aux, ret : Inteiro funcao sub_rotina(tam_vet : inteiro):inteiro Var A,L : inteiro Inicio Para L de 1 ate 9 Faca Para A de 1 ate 10 - L Faca Se Vet[A ] > Vet[A + 1] então Aux := Vet[A ] Vet[A ] := Vet[A + 1] Vet[A + 1] := aux FimSe FimPara FimPara retorne tam_vet Fimfuncao Inicio Para L := 1 ate 10 Faca Escreva("Digite um numero: ") Leia(Vet[L]) FimPara // passagem de parâmetro dos Tipos : Logico Real inteiro ou caractere ret <- sub_rotina(10) // enviou o num 10 como parAmetro para a FunCAo { // essa ordenaCAo será na funCAo Para L de 1 ate 9 Faca Para A de 1 ate 10 - L Faca Se (Vet[A] > Vet[A + 1]) então Aux := Vet[A] Vet[A] := Vet[A + 1] Vet[A + 1] := aux FimSe FimPara FimPara } // Aqui escreve os nUmeros que estarAo ordenados Escreval("") Escreval("Valor retornado da Função ",ret) // ret Eh o valor retornado Escreval("") Para L := 1 ate 10 Faca Escreva(Vet[L]) FimPara Escreval("") Fimalgoritmo
-
@Pedro Martins25 nesse site da GigaByte
https://www.gigabyte.com/br/Motherboard/H510M-H-V2-rev-10/sp#sp
diz que essa placa suporta memórias de 3200mhz , porém se você misturar memórias de velocidades diferentes , será usadas com a de menor velocidade , então para conseguir os 3200 MHz precisam ser todas dessa mesma velocidade ., e pode usar um pente ou dois .
-
@Druid pelo jeito isso é o seu antivirus que esteja disparando essas msg , vá em exceções e clique em permitir usar vs.
- 1
- 1
-
@Pedro Vinicius G. C. essa é a versão mais recente , versão 3.0.7.0 (última de revisão 21/03/2019) release OK , conforme diz nesse link :
https://sourceforge.net/projects/visualg30/
mas essa versão tem alguns "bug's" , e seria melhor usar o da versão anterior a essa ,
VISUALG 3.0.6.5 (revisão 65 em 28/02/2017) , e que está nesse link:
https://antonionicolodi.blogspot.com/2015/06/visualg-30-revisao-4-em-25062015.html
@Luigi Milleo você encontra o visualG 3.0.6.5 , nesse link:
https://sourceforge.net/projects/visualg30/files/
na Aba "FILE" , tem algumas versões do visualg
e no seu código existem dois erros , sendo um o que a msg diz ( linha 3 : "comando fora da seção apropriada ) e que se refere ao comando "Inicio" , pois antes dele precisa haver o comando "Var" , e outro é no cálculo da Área , onde a variável "r" * "r" não foi criada e assim causam um erro . e também você poderia usar a função "quad" para Raio ao Quadrado , e seu código ficou assim :
/// https://sourceforge.net/projects/visualg30/files/ /// Link Do VisualG 3.6.0.5 Algoritmo "area" Var raio,area : real Inicio escreva("Escreva o valor do Raio do CircuLo ") leia(raio) // area <- PI * raio * raio area <- PI * quad(raio) escreval("") escreval("Aera :",area) FimAlgoritmo
- 2
-
Em 16/05/2024 às 11:19, arfneto disse:
fgets só deixa o '\n' lá se tiver espaço. Não pode ir lá cegamente e colocar um 0 porque se o usuário entrar com 50 ou mais dígitos fgets vai colocar exatamente os 50 lá.
isso ainda não sabia , porém nesse caso será apenas um caractere que se perderia , e creio que você quis dizer que fgets pega o '\n' digitado pelo usuário se houver espaço na variável para guarda lo ali , e se não couber , a string vai ficar sem o '\n' e receberá o '\0' finalizando a string ?
- 1
-
realmente essa variável "b" minúsculo :
h1 = A; /// considera que A seja a hipotenuza if(B>A && B>C) /// B Eh o maior Lado ? { h1 = B; B = A; } else /// C Eh o maior Lado ? { /// if(C>A && C>b) if( C > A && C > B ) { h1 = C; C = A; } }
não está nesse código , e sim o "B" maiúsculo , pois editei o código no próprio site e ficou assim , porém aqui no codeblocks não apresentou esses outros erros e warning's .
- 1
-
@RafaelaRios é provável que esteja usando uma variável que recebe incremento e assim adiciona no outro pedido , e se você puder / Quiser , postar o código para podermos ver como está e em que possamos ajudar te .
-
O enunciado diz para ler os lados de um triangulo retângulo e também mostrar a maior altura e também a área do triangulo , então imagino que o programa precisa detectar se o triângulo é retângulo e também a maior altura e a hipotenusa para assim fazer os cálculos , e também coloquei alguns controles para validar o que o usuário digitar na entrada dos dados , e o programa ficou assim :
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <windows.h> #include <math.h> #include <time.h> #include <locale.h> int main(int argc, char* argv[] ) { srand(time(NULL)); setlocale(LC_ALL,"");// usar vIrgula para casas decimais int repetir = 0; int ret = 0; float area = 0.0; float A = 0.0; float B = 0.0; float C = 0.0; float c1 = 0.0; float c2 = 0.0; float h1 = 0.0; float h2 = 0.0; do { repetir = 0; printf("coloque vIrgula para separar casas decimais dos nUmeros" "Digite o tamanho do lado A do triangulo retangulo: "); ret = scanf("%f",&A); printf("val A = %.2f\nval retorno = %d\n",A,ret); if(ret != 1)return 0; printf("Digite o tamanho do lado B do triangulo retangulo: "); ret = scanf("%f",&B); printf("val B = %.2f\nval retorno = %d\n",B,ret); if(ret != 1)return 0; printf("Digite o tamanho do lado C do triangulo retangulo: "); ret = scanf("%f",&C); printf("val C = %.2f\nval retorno = %d\n",C,ret); if(ret != 1)return 0; /// ver qual eh a hipotenusa ? h1 = A; /// considera que A seja a hipotenuza if(B>A && B>C) /// B Eh o maior Lado ? { h1 = B; B = A; } else /// C Eh o maior Lado ? { if(C>A && C>b) { h1 = C; C = A; } } /// ver se o triangulo eh retAngulo c1 = B * B; c2 = C * C; h2 = h1 * h1; /// ver qual eh a maior altura A = B; if(C > A) A = C; if(h2 != c1 + c2 )/// se hipotenuza ao quadrado diferente da soma do quadrado dos catetos { printf("esse triangulo não eh retangulo.\n" "Hipotenuza %.2f diferente (B)² %.2f + (C)² %.2f = %.2f\n" ,h2,c1,c2,c1+c2); repetir = 1; } } while( repetir != 0);/// repete enquanto não for tringulo retangulo area = B * C / 2; /// calculando a Area do triAngulo printf("\nHipotenuza %.2f X %.2f -> %.2f IguaL %.2f => (B)%.2f + (C)%.2f\n" "\nEsse TrianGulo eh RetanguLo. \n\n" "A Maior Altura eh %.2f \n\n" "a Area do TrianguLo eh %.2f \n\n" ,h1,h1,h2, c1 + c2,c1, c2, A, area ); return 0; }
- 1
-
@higor7 como disse @arfneto o erro é por que está lendo dois blocos e sendo que no "fwrite" gravou apenas um bloco de cada vez , e na função exibirContatosCadastrados coloque uma pausa ao final que pode ser a função "Sleep(3000);" ou outra de sua preferência , e seu código com algumas modificações ficou assim :
#include <stdio.h> ///#include <conio.h> não eh biblioteca padrão da linguagem C #include <stdlib.h> #include <windows.h> #include <string.h> #define _h GetStdHandle(STD_INPUT_HANDLE) typedef struct { int sequencial; char nome [30]; char email [30]; ///long int telefone; /// esse nUmero gigante não servirAh para nada char telefone[15]; /// melhor que seja string } ContatoProfissional; ContatoProfissional Contato; int contSequencial = 1; /// var Global int menu (); void inserirContato (); void exibirContatosCadastrados(); void gettch (); int main () { int opcao = -1; do { system("cls"); opcao = menu(); printf("\n"); switch (opcao) { case 1: inserirContato(); break; case 2: exibirContatosCadastrados(); break; default: printf("OpCAo invAlida, digite novamente."); break; } } while (opcao != 0); } int menu() { int opcao = -1; printf ( " 0 - Sair.\n" " 1 - Inserir um contato.\n" " 2 - Exibir os contatos cadastrados.\n" " 3 - Alteracao de dados de um contato.\n" " 4 - Excluir um contato.\n" " 5 - Consultar os dados de um determinado contato.\n" " >> " ); scanf("%d", &opcao); return opcao; } void inserirContato() { FILE *arquivoContatos = fopen("contatos.dat", "ab"); if (arquivoContatos) { getchar(); printf("Digite o nome do contato: "); fgets(Contato.nome, 50, stdin); Contato.nome[strlen(Contato.nome)-1] = 0;/// remove o newLine pego por fgets printf("Digite o email: "); fgets(Contato.email, 30, stdin); Contato.email[strlen(Contato.email)-1] = 0;/// remove o newLine printf("Digite o telefone (00 90000 0000): "); ///scanf("%ld", &Contato.telefone);/// esse nUmero gigante não servirA para nada int ret = scanf("%s", Contato.telefone); /// melhor que seja string e essa funCAo não pega o newLine nem espaCo if(ret != 1)return; Contato.sequencial = contSequencial; contSequencial++; fwrite(&Contato, sizeof(Contato), 1, arquivoContatos); fclose(arquivoContatos); } else { printf("ERRO AO ABRIR O ARQUIVO.\n"); } } void exibirContatosCadastrados() { ContatoProfissional LerContatos; FILE *arquivoContatos = fopen("contatos.dat", "rb"); if (arquivoContatos) { while (fread(&LerContatos, sizeof(Contato), 1, arquivoContatos))/// apenas um Bloco de cada vez { printf ( "Nome ------: %s\n" "Email -----: %s\n" "Telefone --: %s\n" "Sequencia -: %d\n" "'----------------------------------'\n\n" ,LerContatos.nome , LerContatos.email , LerContatos.telefone, LerContatos.sequencial ); } fclose(arquivoContatos); } else { printf("ERRO AO ABRIR O ARQUIVO.\n"); } gettch(); ///Sleep(3000); pausa pelo tempo determinados } void gettch() /// pausa etherna até teclar algo { fprintf(stdout,"\tTecle !"); FlushConsoleInputBuffer(_h ); WaitForSingleObject(_h, INFINITE); }
-
@Ansi C @Ansi C você tem razão, esse algoritmo poderia ser feito usando vetor , e com certeza ficaria muito bom , te agradeço pela dica, porém no enunciado não diz que precisa ser com vetor, e na época não observei que o usuário pensa no número , mas também digita tal número , e assim o computador sabe qual número o usuário pensou , e também se mentiu . E nesse código que postei ficaram invertidos os operadores lógicos ">=" e "<=" e faltou o "default:" no switch / case , e o código ficou assim nessa nova versão :
#include <stdio.h> #include <windows.h> #include <time.h> #include <locale.h> /// did you mean => você quis dizer void adivinha( int ); int main(int argc, char* argv[] ) { srand(time(NULL)); setlocale(LC_ALL,""); int tentar_de_novo=1; do { printf("Pense e digite um número de 1 a 100\n"); scanf("%d",&numero); adivinha(); printf("Se você deseja jogar novamente digite um qualquer numero, se não digite 0\n"); scanf("%d",&tentar_de_novo); }while(tentar_de_novo); printf("\n\n\n"); return 0; } void adivinha( int numero ) { int aleatorio = 0 , ultimo = 100 , primeiro = 1 , tentativas = 0 ; char simbolomate = 0 ; do { aleatorio = primeiro + ( ultimo - primeiro ) / 2; tentativas++; printf ("O número que você escolheu é maior,menor ou igual a %d ?\n" "Digite '>', '<' ou '=' respectivamente \n" "Número de tentativas -----: %d \n",aleatorio,tentativas); scanf (" %c",& simbolomate); switch (simbolomate) { case '=': if(aleatorio != numero) printf("Mentiu !\n"); else printf("número correto"); break; case '>': if(aleatorio >= numero) printf("Mentiu !\n"); if(numero > aleatorio) primeiro = aleatorio + 1; break; case '<': if(aleatorio <= numero) printf("Mentiu !\n"); if(numero < aleatorio) ultimo = aleatorio - 1; break; default: printf("Opção inváLida . . . !\n"); } } while( aleatorio != numero || simbolomate != '=' ); }
- 1
-
@Samuel Fortes Brasil as mensagens de erro emitidas pelo visualG não são exatas , mas apenas informa que tem um erro , e é o programador que precisa descobrir qual erro é , e geralmente é erro de sintaxe , como comandos escrito errado , grudado na palavra seguinte , e variáveis não criadas , então quando aparece essas msg é preciso verificar o código para descobrir o que está errado . o visualG é um bom compilador , pois usa os comandos em português , porém é bem simples e poucos recursos , é para iniciantes e não se pode exigir muito dele , e também ajuda quem está começando pois assim força o programador a descobrir como corrigir os erros , e o erro nesse seu código e como o @Ansi C lhe explicou , falta mesmo essa variável "MaiorNota" , então coloca lá no início como sendo do tipo "Real" ,
turma : Inteiro N1,N2,N3,N4,N5 : Inteiro Nota, MaiorNota : Real
-
@Samuel Fortes Brasil o erro "esperava encontrar faca" e por que o enquanto está grudado no texto seguinte a ele e sem espaço , assim o compilador reconhece como sendo uma coisa só , e a informação que ele lança não é exata , pois o que faltava mesmo é o "enquanto" que está de fato escrito , mas mesmo para humanos essa escrita , "enquanto(valorInicial " , está errada, pois está tudo escrito junto .
e uma forma de mostrar os números tanto seja de forma progressiva ou Regressiva , seria verificar os valores inicial e final e decidir de onde começar a escrever os números no intervalo , pois se o final for menor que o inicial , então fazer uma troca deles um pelo outro , e assim só usaria mesmo um loop ao invés de dois ,
Algoritmo "erro no enquanto_faca " Var valorInicial,valorFinal, auxiliar : inteiro contPersonalizada, contador, flg : Inteiro Inicio Escreval("----------------------------- ") Escreval(" CONTADOR INTELIGENTE ") Escreval("----------------------------- ") Escreva ("Qual o valor inicial da contagem? " ) Leia ( valorInicial ) Escreva ("Até quando o contador deverá contar? ") Leia ( valorFinal ) Escreval("----------------------------- ") Escreva ("Pretende fazer uma contagem ( normal ") Escreva ("ou regressiva) de quanto em quantos ") Escreval("números ? ") Escreval("Por exemplo: 1 + 2 ao invés de 1 + 1.") Escreva ("Resposta.: " ) Leia ( contPersonalizada ) contador <- valorInicial se valorInicial > valorFinal então contador <- valorInicial auxiliar := valorFinal valorFinal := valorinicial valorInicial := auxiliar flg <- 1 contPersonalizada <- contPersonalizada * -1 fimse Se valorInicial > 0 então Enquanto valorInicial <= valorFinal faca se flg <> 0 então valorInicial <- valorInicial + contPersonalizada * -1 senao valorInicial <- valorInicial + contPersonalizada fimse Escreval( contador ) contador <- contador + contPersonalizada FimEnquanto FimSe Fimalgoritmo
-
@Samuel Fortes Brasil não são os parênteses que causam problemas , mas não são necessários nesse caso específico , pois ali tem apenas uma comparação , e se tivessem duas comparações , aí sim precisaria de colocar os parênteses , e o algoritmo está contando só até 14 por que foi isso que você indicou no código , ou seja para escrever o valor dessa variável "valorInicial" enquanto ela for MenorQue o valorFinal , e sendo que para escrever também o valorFinal precisa inclui-lo com o sinal de "=" junto ao "<" MenorQue , assim :
Enquanto valorInicial <= valorFinal faca // vai atee enquanto o valor seja monor ou igual ao valorFinaL Escreval( valorInicial ) valorInicial <- valorInicial + contPersonalizada FimEnquanto
-
@Samuel Fortes Brasil você postou no tópico de portugol , mas esse código é do VisualG , que é portugol, mas cuja sintaxe é diferente do portugol studio , e é nesse que se usa o '\n' para quebrar a linha , e no visualG seria assim :
Escreva(/n"Vou pagar em quantas parcelas ?") // essa Linha Escreva("/nVou pagar em quantas parcelas ?") // quebrar a linha no Portugol Studio // e no VisualG seria assim : EscrevaL("Vou pagar em quantas parcelas ?")
- 1
-
@jaireugenio desculpe , por esses comandos esquisitões , mas eles são comandos simples e não fazem nada demais não, apenas manipula som e cores no console, e aqui no codeblock's esse esboço de Algorítimo com essa estrutura e várias bibliotecas já é criado automáticamente ao iniciar um novo arquivo ou projeto, e na hora de postar não removi esses comandos , e nesse código eles poderiam ser excluídos e não afetaria em nada o funcionamento de seu código , e você disse que precisa encontrar 9 números , porém nesse novo código que postou , se na entrada for informado "9" , só mostrará "7" e sendo que para mostrar os 9 números precisa informar "43" logo na entrada , aqui seu código para apresentar também a Quantidade encontrada :
#include <stdio.h> int main () { int n = 0, divisor = 0; size_t soma1 = 0, soma2 = 0; size_t y = 0, x = 0; size_t cont = 0, r = 0; printf("Encontrar Quantos nUmeros Amigos "); scanf("%d", &x); if( x > 3 ) y = x * 1500; else y = x * 1000; for (n = 2; n <= y; n++) { soma1 = 1; for (divisor = 2; divisor <= n/2; divisor++) { if (n % divisor == 0) soma1+=divisor; //calcula a soma dos divisores } soma2 = 1; if (soma1 != n) for (divisor = 2; divisor <= soma1/2; divisor++) { if (soma1 % divisor == 0) soma2 += divisor; //calcula a soma dos divisores } if (soma2 == n && n < soma1) //verificar se a soma dos divisores eh igual ao numero { cont += 1; printf(" %d -> (%7d,%7d)\n",cont, n, soma1); } } return 0; }
- 1
-
@Ansi C obrigado , creio que você teve muito dificuldade para obter essa listas , pois já pesquisei bastante e não encontrei em nenhum lugar uma lista igual a essa , mas apenas informações sobre como adquirir um para de número amigos .
- 1
-
@Thaianny Oliveira no primeiro código você está incrementando a variável que controla o loop for e assim vai pular de dois em dois , e lerá apenas cinco números ,
scanf("%i", &idade); /// count++; já incrementada pelo "for"
e no segundo você colocou um loop "while" dentro do "for" sem necessidade , e se que apenas mostrar as idades maior ou igual a 18 então só precisa de uma comparação " if " ,
printf("Informe 10 idades para o sistema:\n"); for(int count=0; count<10; count++) { /// while(count<10) /// { printf("Informe a %d idade -: ",count+1); scanf("%i", &idade); /// count++; if ( idade >= 18 ) { printf("\n%i Idade -> %d\n\n",count+1, idade); } /// } }
e outro modo mais elaborado seria usar um vetor para armazenar todas as idades com um loop "for" indo de zero até enquanto for menor que 10 , e depois outro loop para fazer a comparação e mostrar tais idades , e outra coisa também é que o mais comum é começar o loop em zero "0" pois na linguagem c os vetores se iniciam pela posição zero mesmo , apesar de que não terá erro se começar em " 1 " , mas se assim o fizer vai perder duas posições do vetor, a primeira e a última posição , pois essa última posição não estará reservada .
- 1
- 1
-
@santicide você postou no tópico de C++ , mas esse código é todo da linguagem C , e então você vai fazer em Qual linguagem ? , e pode ser na linguagem C mesmo , então essa função sorteio_manual não funciona pois está em loop infinito , já que essa variável "i" que foi criada mas não foi inicializada e assim ela terá um valor aleatório qualquer ,
#define _WIN32_WINNT 0x600 #define _h GetStdHandle(STD_OUTPUT_HANDLE) #include <stdio.h> #include <conio.h> #include <iso646.h> #include <stdlib.h> #include <iostream> #include <string.h> #include <windows.h> #include <math.h> #include <time.h> #include <stdbool.h> #include <locale.h> using namespace std; int sorteio_manual() { int i, /// var não inicializada , pode ter qq valor numeroSorteioM = 0, /// inicializa uma variAvel "int" numeroDigitadoM, verificaNumeroM, numeroJaDigitadoM, numerosM[6] = {0}; /// inicializando um vetor de "int" todos elementos zerados while(i < 6) /// só vai entrar nesse loop se i for menor que 6 { /// e só vai sair qundo "i" for maior Que zero printf("Val I= %d\n",i); /// para ver o valor da var "i"
e essas funções são ineficazes pois não recenem nenhum argumento e nem retornam nada .
-
@gui_3824 o enunciado diz que os dados precisam estar um arquivo txt e depois de calcular a área do polígono , mostrar na tela .
2. O que deve ser feito Escreva, em C, um algoritmo para determinar a área de uma região poligonal cujos vértices estão organizados em um arquivo texto. Nesse arquivo, a primeira linha mostra o número de lados (ou vértices) do polígono e cada uma das linhas a seguir trazem as coordenadas x e y desses vértices separadas por um espaço. Por exemplo, caso o polígono tenha vértices (1, 2), (3, 8 ] e (5, 1), o arquivo de entrada terá o seguinte aspecto: Como saída, o programa deve informar a área desse polígono em uma mensagem exibida no painel terminal ou no prompt de comando. Assim, no caso do triângulo indicado acima, a saída deveria ser: “A área do polígono é 13”.
se você já tem um código sobre esse exercício , poste aqui e ajudaremos .
- 1
-
@Eli Almeida o enunciado diz que é um tabuleiro "vazio" , então com certeza é o primeiro imagem porém para ter como informar as posições precisa numerar as linhas e colunas , ou números e letras ., assim :
- 1
-
@Eli Almeida seu código está funcionando bem , porém não entendi o modo de jogar , pois parece que seja para apenas um jogador , ou talvez para dois jogadores humanos , sendo que cada um joga e espera o outro fazer a jogada dele , e se fosse para jogar contra o computador poderia colocar para que o computador escolhesse aleatoriamente uma das posições usando a função "randi" .
- 1
-
@jaireugenio para esse código não repetir os mesmos números você pode colocar uma variável que armazena os números encontrados e assim evitar imprimi los novamente , porém não sei se esses números encontrados pelo programa são realmente números amigos , e com essa modificação seu código ficou assim :
#define _WIN32_WINNT 0x600 #define _h GetStdHandle(STD_OUTPUT_HANDLE) #include <stdio.h> #include <conio.h> #include <iso646.h> #include <stdlib.h> #include <string.h> #include <windows.h> #include <math.h> #include <time.h> #include <stdbool.h> #include <locale.h> char cor( int, int ); int main(int argc, char* argv[] ) { srand(time(NULL)); int letra,fundo; CONSOLE_SCREEN_BUFFER_INFO _c ; if( GetConsoleScreenBufferInfo ( _h, & _c ) ) { letra = ( _c.wAttributes & 0xFF ) & 0x0F; fundo = ( ( _c.wAttributes & 0xFF ) >> 4 ) & 0x0F; } cor(12,14); setlocale(LC_ALL,""); ///------------------------------------------------------- int n, divisor, r, soma1, soma2, y, x; int flag = 0; scanf("%d", &x); if(x>3) { y=x*1500; } else y=x*1000; for (n = 2; n <= y; n++) { soma1 = 1; for (divisor = 2; divisor <= n/2; divisor++) { if (n % divisor == 0) soma1+=divisor; //calcula a soma dos divisores } soma2 = 1; if (soma1 != n) for (divisor = 2; divisor <= soma1/2; divisor++) { if (soma1 % divisor == 0) soma2+=divisor; //calcula a soma dos divisores } if (soma2 == n && flag != n) //verificar se a soma dos divisores eh igual ao numero { printf(" (%7d,%7d) \n",n, soma1); flag = soma1; /// armazena para q não repita esses mesmos num's } } for(int f=0; f<10; f++) Beep(rand()%3000,rand()%150+150); ///------------------------------------------------------- cor(letra,fundo); printf("\n\n\n"); return 0; } char cor( int L, int F ) { SetConsoleTextAttribute( _h, L +( F << 4 ) ); }
- 1
- 1
-
@jaireugenio seu programa está em loop infinito , por que você colocou a condição de saida do while como "num1" igual a zero , e isso nunca acontece pois sempre que é zero recebe incremento .
while(num1) /// repita enquanto for diferente de zero { while(num2) { if(amigo(num1,num2)==1) { f = num1; k = num2; printf("(%d,%d)",num1,num2); num1 = 0; /// num1 recebe valor zero num2 = 0; } num1++; /// incrementa, e assim nunca sairA desse Loop etherno } }
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
Erro de Compilação - Visual Studio Code
em C/C#/C++
Postado
@DaviFonsecx seu código está funcionando bem , sim , tanto no codeblocks quanto no Visual Studio Code , e nesse último , talvez você ainda não sabe que precisa colocar a extensão do arquivo que você inseriu no VS Code , que é o indicador de qual linguagem é o código , e você postou na linguagem C então coloque "Nome_Do_Codigo.c" , senão ele não será reconhecido pelo compilador , e você pode incluir uma função de pausa para ver os resultados , pode ser o comando "Sleep" da biblioteca "windows.h" ou o comando "getch();" da biblioteca "<conio.h>" que apesar de não ser padrão da linguagem c , ainda funciona , ou mesmo criar uma função para esse objetivo , como essa aqui :
e organizar os números do resultado em colunas , facilitando a leituras :