Ir ao conteúdo
  • Cadastre-se

Flávio Pedroza

Membro Pleno
  • Posts

    2.067
  • Cadastrado em

  • Última visita

Tudo que Flávio Pedroza postou

  1. #include <stdio.h> #include <float.h> #include <math.h> int main (){ int N, i; float maiorx = 0, menorx = DBL_MAX, maiory = 0, menory = DBL_MAX, r, cx, cy; scanf("%d", &N); float x[100], y[100]; while(N!=0){ for(i = 0; i < N;i ++){ scanf("%f %f", &x[i], &y[i]); if (x[i] > maiorx) maiorx = x[i]; if (x[i] < menorx) menorx = x[i]; if (y[i] > maiory) maiory = y[i]; if (y[i] < menory) menory = y[i]; } cx = (maiorx + menorx) / 2; cy = (maiory + menory) / 2; r = sqrt((maiorx - cx) * (maiorx - cx) + (maiory - cy) * (maiory - cy)); printf("%.2f %.2f %.2f\n", cx, cy, r); scanf("%d", &N); } return 0; }
  2. Melhor que os produtos fiquem armazenados em um vetor: std:vector <Produtos> produtos; produtos.reserve(100);//opcional Acrescente essa linha: p.diferencial = int.Parse(Lidos[15]); produtos.push_back(p);//acrescentar essa linha você então ordena os produtos pelo código do produto class Produtos { public int pedido, serie, terminal, filial, produtos, calc, caixa, data, hora, diferencial; public double quantidade, quebra; public string estorno, devolucao, nulo, tipo bool operator() (Produtos p1, produtos p2) { return (p1.produtos<p2.produtos);}//acrescentar para ordenar os produtos pele cogido do produtos } std::sort(produtos.begin(), produtos.end()); //depois do while Então, varra o vector e vá somando os valores. Cada vez que o código do produto mudar você zera o contador int codigo = -1; int soma; for (std::vector<Produtos>::iterator it=produtos.begin(); it!=produtos.end(); ++it) { if (codigo != it.produtos) //o codigo do produto mudou { cout << "Produto" << codigo << ":" << soma; soma = 0; codigo = it.produtos; } soma += it.quantidade; } Isto é só uma ideia, não testei e pode ter alguns erros, mas o principio é esse. Veja se consegue implementar.
  3. "o grupo deverá selecionar três ou mais estruturas de dados" quais são as estruturas?
  4. #include <limits.h> int main() { int i, escolha = 10; int menos = INT_MAX, mais = 0; //mais = paciente.peso[i]; //menos = paciente.peso[i]; if(paciente.peso[i] > mais){ resultado.maisObeso = i; mais = paciente.peso[i]; } if(paciente.peso[i] < menos){ resultado.menosObeso = i; menos = paciente.peso[i]; }
  5. Tá lá no meus post string nome; getline(cin, ag.nome);
  6. Não recomendo misturar "c" e "c++". Se está programando em c++, não use scanf ou char[]. Use cin e string. Também não use as bibliotecas do "c". template <typename TIPO, int MAX> struct Agenda{ TIPO ID[MAX]={}, CPF[MAX]={}, Cel[MAX]={}, CNPJ[MAX]={},Empresa[MAX]={}, Tcomercial[MAX]={}; string nome; int quantidade; }; cout<<"NOME: "; getline(cin, ag.nome); cout<<ag.nome;
  7. veja se isto ajuda: http://geekycircle.blogspot.com/2014/03/adding-icon-to-dev-c-program.html#.XZea1oPwYdU
  8. Basta incluir esse fragmento de código no ".h" da biblioteca.
  9. Veja se é isso que queria: int main(){ int n1=0, n2=0 , rmdc = 0, rmod = 0, rpot = 0; char fim[] = "OOO"; char op[4]; while(1){ printf("Entre operação: "); scanf("%s",op); if (strcmp(op, fim) == 0) return 0; printf("Entre n1:"); scanf("%d",&n1); printf("Entre n2:"); scanf("%d",&n2); if (strcmp(op, "MDC") == 0) { rmdc = MDC(n1,n2); printf("MDC(%d,%d) = %d\n",n1,n2,rmdc); } else if (strcmp(op, "MOD") == 0) { rmod = MOD(n1,n2); printf("MOD(%d,%d) = %d\n",n1,n2,rmod); } else if (strcmp(op, "POT") == 0) { rpot = POT(n1,n2); printf("POT(%d,%d) = %d\n",n1,n2,rpot); } } }
  10. Não está certo. Para calcular a média você soma os elementos e divide pela quantidade de elementos: case 2: media = 0 for(it = numeros.begin(); it != numeros.end(), it++) { media += *it; } media = media / numeros.size(); cout << "A media é: " << media << enl; cout << "Pressione enter para continuar" << endl; cin.get(); break;
  11. Acredito que a forma abaixo esteja mais próxima do pedido no exercício. #include <vector> #include <iostream> using namespace std; int main(){ int x; string continuar; vector<int> numeros; numeros.size(); do{ cout << "Digite um numero: "; cin >> x; numeros.push_back(x); cout << "Deseja continuar? (s/n)"; cin >> continuar; }while(continuar == "s"); cout << "Saiu" << endl; int opcao; int soma; vector<int>::iterator it; do { cout << "Escolha a opção" << endl; cout <<"1: Imprimir o somatório de seus elementos" << endl; cout <<"2: Imprimir a média de seus elementos" << endl; cout <<"3: Imprimir a média e o somatório" << endl; cout <<"4: Substituir por zero todos os valores negativos e imprimir a média" << endl; cout <<"5: Substituir por zero todos os valores repetidos e imprimir a média e o somatório" << endl; cout<<"6: mostrar o vetor ordenado" << endl; cout <<"0: Sair da aplicação" << endl; cin >> opcao; cin.ignore(); switch (opcao) { case 1: // SOMA soma = 0; for (it = numeros.begin(); it != numeros.end(); it++) { soma += *it; } cout << "A soma é: " << soma << endl; cout << "Pressione enter para continuar" << endl; cin.get(); break; case 2: break; case 3: break; case 4: break; case 5: break; case 6: break; case 0: break; } } while (opcao != 0); cout << "Tchau!"; return 0; } Veja se consegue fazer o resto (média, ordenar, etc.).
  12. Não, são coisas completamente diferentes. switch/case é equivalente a condicionais if/else.
  13. sizeof retornar variável do tipo unsigned long, ou std::size_t em c++. São tipos de variáveis positivas que vão de zero até um valor máximo, nunca negativas. Quando você compara com números negativos, dá erro, pois o compilador vai transformar o número negativo no tipo sem sinal, ficando um número positivo com valor alto. Rode o exemplo abaixo para entender melhor. #include <iostream> using namespace std; int main() { int a = -1; //variável com sinal unsigned long b = 0;// variável sem sinal int c= 0;//variável com sinal if (a < b) cout << "a eh menor que b" << endl; //comparando signed com unsigned - erro! else cout << "erro???" << endl; if (a < c) cout << "a eh menor que c" << endl; //comparando signed com signed - ok! else cout << "erro???" << endl; //o que acontece quando transformo um tipo negativo em unsigned? cout << (unsigned long)a; return 0; } Em resumo, não compare números negativos com varáveis unsigned.
  14. Recursividade tem execução mais lenta é ocupa mais memória - não tem como evitar. Se isso é um problema, use laços então.
  15. tem que fazer o case switch para cada opção, tipo: int opcao; cin >> opcao; switch (opcao) { case 1: break; case 2: break; case 3: break; case 4: break; case 5: break; case 6: break; case 7: break; case 8: break; case 9: break; case 0: break; }
  16. do { cout<<"\t\tMENU\n\n\t1 AUTORES\n\t2 JOGAR\n\t3 SAIR\n\t>"; cin>>escolha; cin.ignore();//acrescentar para ele ignorar o ENTER; system("cls"); if(escolha==1) { system("cls"); cout<<"\tAUTORES:\n\tFelipe Hoffmeister\n\tRicardo Carvalho\n\tGuilherme"<<endl; } if(escolha==2) { do{ cout<<"\tDigite o nome do jogador da cartela 1:"; //gets(nome1); depreciado cin.getline (nome1,256); cout<<"\tDigite o nome do jogador da cartela 2:"; cin.getline (nome2,256);
  17. Na verdade, não acho que o programa vá funcionar do jeito que quer. Vai chegar um ponto em que o fatorial será tão grande que irá gerar erro de underflow. Tem que alterar o algortimo como sugeriu @isrnick
  18. Não precisa, o erro era o nome da função, você escreveu errado no .h.
  19. você está calculando o fatorial de forma errada. Além disso, acredito que esteja havendo estouro da variável. A convergência da séria é muito lenta, o que leva a muito passos e incremento muito rápido da variável fat. Tenta assim: #include<stdio.h> #include<conio.h> #include<math.h> int main(void) { int n = 0, i; double fat = 1; double serie = 0; while(serie <= 0.818731) { n = n + 1; fat=fat*n; serie = serie + (pow(-1,n)*pow(0.2,n))/fat; printf("\n%f %u", serie, fat); getch(); } return(0); }
  20. Tem um erro nessa linha case 3: //printf("\t\t\MAPA\n"); printf("\t\tMAPA\n"); e aqui #pragma once #include <stdio.h> #include <math.h> extern int assentoC[23]; extern int assentoJ[23]; extern float valort; //void limpavetor(int *v1,int*v2); void limparvetor(int *v1,int*v2);
  21. Por que será hein? Será que essa é uma sintaxe aceita pela linguagem? int SomaSerie(int i, int j, int k){ int soma = 0; if(i<j){ soma = soma + SomaSerie(i + k, j, k); }else{ soma = soma + j; } return soma; }

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!