Ir para conteúdo
Fórum Script Brasil

vangodp

Membros
  • Total de itens

    883
  • Registro em

  • Última visita

Tudo que vangodp postou

  1. tal como você tem da a entender que estão separados por espaço... while (arquivo >> dados) cout << dados << endl; a) o menor dos números: você precisa de uma variável na qual você deve inicializar com o maior valor possivel ao que possa ser armazenado em um int. logo ir guardando cada int lido caso seja menor que a tal variável. #include<iostream> #include<climits> using namespace std; int main(){ int n = INT_MAX; int aux = 3000; cout << "Antes" << n << endl; cout << "Antes" << aux << endl; //n é maior que aux, vai ser atribuido o valor de aux a n if ( aux < n ){ n = aux; } cout << "Depois" << n << endl; cout << "Depois" << aux << endl; aux = 5000; //agora n é menor que aux, n vai acontecer nada if ( aux < n ){ n = aux; } cout << "Agora" << n << endl; cout << "Agora" << aux << endl; aux = 10; //aux é menor que n... sempre que isso acontecer o valor de aux vai ser guardado em n "anotando" o menor numero sempre. if ( aux < n ){ n = aux; } cout << "Fim" << n << endl; cout << "Fim" << aux << endl; return 0; } é dizer... cada vez que ler um numero guarda ele na aux e compara ele com n para ver si aux é menor, caso for assim você copia o aux no n. Por isso precisa inicializar n com o maior valor possivel, isso acontece quando fazemos int n = INT_MAX. O INT_MAX é o maior valor que cabe em um int, se fizer um ++ ao n você verá que passa a ser negativo. também tem INT_MIM etc. você pode ver aqui exemplos: https://www.cplusplus.com/reference/climits/ b) o maior dos números o maior dos números é a mesma coisa... só que desta vez com INT_MIN ou simplesmente atribuindo 0 ao n. Tome cuidado porque si tiver números negativos melhor usar INT_MIN, e em caso de n ter negativos talvez inicializando n com 0 seja suficiente. Dica.. se no arquivo n tiver numeros negativos talvez seja melhor usar unsigned int n em vez de int... fica mais "profissional". tenta ai e me diz como foi. c) a soma de todos os números. A soma é o mais fácil... você precisa de uma variável chamada somatória do tipo int que deve ser inicializado e cada vez que ler um numero do arquivo você deve fazer: n = n+aux;
  2. se contador é uma constante você n pode fazer ++. Tire o const
  3. pode ser que o codeblocks n ache gdb.exe, você tem que indicar para codeblocks. vai em settings/Debuger Settings e en default você precisa buscar o gdb.exe. O gbd.exe costuma estar na pasta do compilador chamada bin. https://prnt.sc/WcjVReXc6Zjd Se tiver dificuldade me avise e pode que seja possivel lhe ajudar. gbd.exe costuma estar junto na pasta do gcc.exe, g++.exe etc(pasta bin) como na foto em executable path você precisa indicar a pasta bin e o nome do arquivo... neste caso gdb.exe
  4. é uma ide muito boa sim.. mas também muito dependente de cmake, para estudo isso adiciona uma nova capa de complexidade.
  5. também vamos ter de adivinhar o que faz o programa...? se você comentar ele ou talvez explicar o que você achar que ele deveria fazer nas partes mais criticas do seu programa. Assim de entrada vejo coisas que podem causar erros como a linha "double maior;" dentro da função maior. quando declarar uma variável tenha em mente que você esta reservando um espaço da memoria, e que esse espaço pode vir com dados de outros programas incluídos("lixo"), se outro programa tiver usado esse espaço anteriormente é bem provável que lá tenha algum valor previo. Dai se você fizer... int i; double maior; for(i=0; i!=tam; i++){ if(vetor[i] > maior){ maior=vetor[i]; pensando que maior vale 0 você pode topar com erros pois na realidade se a função tiver lixo poderia ser algo como isso int i; double maior = (aqui poderia ter qualquer valor); for(i=0; i!=tam; i++){ if(vetor[i] > maior){ maior=vetor[i]; isso pode causar erros imprevisíveis, porque poderia funcionar seu programa, ou funcionar as vezes, ou até mesmo sair dragão na tela. Quando você precisar fazer cálculos com uma variável o melhor é dar um valor inicial int i; double maior = 0; // aqui temos controle porque sabemos que valor inicial vai ter for(i=0; i!=tam; i++){ if(vetor[i] > maior){ maior=vetor[i]; Fora isso você deveria comentar as formulas e cada parte critica etc. Somos todos pessoas ocupadas e realmente eu não sou estudante de pscologia XDDD. E ainda sou bem ruim em matematicas kkk. Se você me facilitar o que você espera que o programa faça, talvez, ou certamente seja possivel lhe ajudar. A linguagem C faz muitas coisas implícitas, que muitas vezes o programador desconhece, por isso você pode estar tendo problemas.
  6. coisas a dominar antes de tocar aí seriam entender o processo de compilação, linkado, e logo a geração de makefiles básicos, para logo ir escalando. não imagino que erro esta acontecendo. você sabe usar makefiles?
  7. mas por que você ta mexendo ai...? Isso é um arquivo makefile gerado pelo dev c++ automaticamente cada vez que você compila acredito. você sabe usar makefiles? o que você quer fazer exatamente..?
  8. vangodp

    Erro

    No c e c++ se você errar uma coisinha da "tropecentos" mil erros. o truco é ir arrumar o primeiro que provavelmente o resto volte a vuncionar. Para isso preste atenção nesta linha: \Users\magsm\OneDrive\┴rea de Trabalho\desafios\passagem de aviÒo\passagens.cpp: In function 'int main()': No arquivo passagens.cpp: dentro da função main na linha 20 acontece o seguinte erro: error: expected primary-expression before ')' token esta esperando uma expressão antes do parêntesis de fechamento ) 20 | switch (){ | ^ talvez você n saiba... ou pode que sim. tanto switch, como if, como while , etc, quer que você ponha algo dentro de ( e ) para ser avaliado. Dependendo do resultado da expressão dentro dos parêntesis for verdadeiro o falso se entra no corpo {} ou não. se os parêntesis estão vazios, o switch n serve para nada, e esse é o erro pois n se avalia nada. só com isso deve se arrumar os outros 200 mil erros kkk
  9. #include<iostream> using namespace std; int main(){ cout << __DATE__ << endl; return 0; } https://www.cprogramming.com/reference/preprocessor/__DATE__.html
  10. vangodp

    problema com while

    "Lixo" no buffer. Insira depois de cada cin "cin.sync();" para sincronizar a entrada padrão com o que for guardado na variável, isso evitará problemas. cin>>blabla... cin.sync(); busque sobre como limpar o buffer em c++.
  11. float kilometros = 7; printf("%f km equivale a %f", kilometros, (kilometros*4.349597));
  12. n vi todo o programa porem quando declarar struct base db[2]; você só tem 2 elementos, porem neste for você tenta acessar um terceiro elementos que n existe. Ou seja você esta estourando a capacidade do tal vetor.
  13. para isso se deveria usar o operador new para reservar dinamicamente uma matriz dinâmica de chars. Se quiser ir mais longe você pode usar o container vector
  14. Aparte disso você esta multiplicando um double por outro double e tentando guardar o resultado em um float causando assim a perda de informação. O que acontece neste caso é uma conversão implícita de tipos de double a float e isso pode dar lugar a erros importantes no seu código em um futuro. procure fazer desta forma: float a = 100.64f * 100.64f; O sufixo especifica o de literal de numero real: (sem sufixo) se define um double Com sufixos f ou F se define float Com sufixos l ou L se define long double O numero 100.64 se diz que é um literal de ponto flotante porem pode dar lugar a ambiguidades. você pode querer um double, um float, um long double, etc, por isso você deve informar o compilador usando os sufixos acima mencionados assim da a entender que você tem o controle do seu programa. Existem muitos tipos de literais, para praticamente todos os tipos, lhe recomendo que procure sobre o tema.
  15. Existem outras opções de abertura como r+
  16. claro que podemos ajudar.... mas manda o que levar feito.
×
×
  • Criar Novo...