Ir ao conteúdo

AdrianoSiqueira

Membro Pleno
  • Posts

    1.273
  • Cadastrado em

  • Última visita

Tudo que AdrianoSiqueira postou

  1. Talvez problema de aquecimento? Ou a fonte não tá mais aguentando o tranco?
  2. Tenta dessa forma: #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { const int tamanho = 10; int vetor[tamanho]; int vetorPares[tamanho]; int vetorImpares[tamanho]; int pares = 0; int impares = 0; srand(time(NULL)); for (int i = 0; i < tamanho; ++i) { vetor[i] = rand() % 100; if (vetor[i] % 2 == 0) { vetorPares[pares] = vetor[i]; pares += 1; } else { vetorImpares[impares] = vetor[i]; impares += 1; } } printf("Vetor {"); for (int i = 0; i < tamanho; ++i) { printf("%i ", vetor[i]); } printf("} \n"); printf("Vetor P {"); for (int i = 0; i < pares; ++i) { printf("%i ", vetorPares[i]); } printf("} \n"); printf("Vetor I {"); for (int i = 0; i < impares; ++i) { printf("%i ", vetorImpares[i]); } printf("} \n"); return 0; }
  3. If não tem ponto e vírgula (;). A sintaxe correta é: if (/* Aqui fica a condição */) { // Caso a condição seja true } else { // Caso a condição seja false }
  4. @Bacanario Você tem que realizar o cálculo do resultado após pegar o valor do usuário. #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { double valor = 0.0; double resultado = 0.0; char opcao = ' '; printf("Digite o valor: "); scanf(" %lf", &valor); printf("\n" "1 - Raiz quadrada \n" "2 - Metade \n" "3 - 10%% \n" "4 - Dobro \n" "0 - Cancelar \n" "> "); scanf(" %c", &opcao); switch (opcao) { case '0': exit(0); case '1': resultado = sqrt(valor); break; case '2': resultado = valor / 2; break; case '3': resultado = valor * 0.1; break; case '4': resultado = valor * 2; break; default: printf("\nOpção inválida! \n"); exit(1); } printf("\nResultado: %.2f \n", resultado); return 0; }
  5. Não seria melhor criar uma struct para o tipo "nutriente", e depois criar um vetor desse tipo? struct Nutriente { char nome[50]; int maxNutriente; int quantNutriente; } int main(){ struct Nutriente nutrientes[10]; return 0; } Se você puder dar mais detalhes sobre o problema ajudaria, pois é difícil dar uma resposta mais concisa sem saber o contexto do problema.
  6. Tenta o seguinte: setbuf(stdin, NULL); // Remove essa linha scanf("%49[^\n]", nome_nutriente); // Deixe essa linha assim: scanf("%[^\n]s", nome_nutriente);
  7. Quando se trabalha com vetores, você precisa especificar a posição em que os dados devem ser obtidos ou colocados. Segue um pequeno exemplo funcional: #include <stdio.h> #include <stdlib.h> int main() { const int tamanho = 3; // Comodidade para percorrer loops int vetor[tamanho]; // Vetor for (int i = 0; i < tamanho; ++i) { /* * Usando (i + 1) não altera o valor de i, mas quando for * imprimir, o valor irá aparecer somado mais um. */ printf("Insira o %iº valor: ", (i + 1)); scanf("%i", &vetor[i]); // Especifica a posição que o valor deve ser colocado } printf("---------------------------------- \n"); for (int i = 0; i < tamanho; ++i) { printf("%iº valor: %i \n", (i + 1), vetor[i]); // Especifica a posição de onde o valor deve ser obtido } printf("---------------------------------- \n"); return 0; }
  8. Cria uma função para determinar se um número é primo ou não, por exemplo: bool ePrimo(int numero){ bool primo = false; // Faz os devidos testes return primo; } Isso vai ajudar a organizar seu código.
  9. Executando esse código acontece a mesma coisa? #include <stdio.h> #include <stdlib.h> int main() { return 0; }
  10. Na classe View, coloca uma condição depois de pegar cada um dos nomes: String nome1 = JOptionPane.showInputDialog(null, "Digite o primeiro nome", "Informação", JOptionPane.PLAIN_MESSAGE); if (nome1 == null) { System.exit(0); } String nome2 = JOptionPane.showInputDialog(null, "Digite o segundo nome", "Informação", JOptionPane.PLAIN_MESSAGE); if (nome2 == null) { System.exit(0); } // Continua seu código
  11. @Martinho Sinatra Até onde eu sei, não é possível pegar um vetor como entrada do usuário. Você tem que pegar cada um dos valores e ir armazenando dentro do vetor. Seria algo assim: int vetor[10]; int entrada = 0; for (int i = 0; i < 10; ++i) { printf("Digite o valor[%i]: ", (i + 1)); scanf("%i", &entrada); vetor[i] = entrada; } E para testar o valor, você deve informar a posição do vetor que esse valor está: for (int i = 0; i < 10; ++i) { printf("--------------------------------- \n"); printf("Posição: %2i - Valor: %i", i, vetor[i]); if (vetor[i] % 12 == 0){ printf("É múltiplo de 12. \n"); } else { printf("Não é múltiplo de 12. \n"); } printf("--------------------------------- \n"); }
  12. Segue uma versão funcional: #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <string.h> struct Campo { char simbolo; bool disponivel; }; struct Campo c1; struct Campo c2; struct Campo c3; struct Campo c4; struct Campo c5; struct Campo c6; struct Campo c7; struct Campo c8; struct Campo c9; struct Jogador { char nome[10]; int pontos; }; struct Jogador j1; struct Jogador j2; int main() { int checarFimPartida(int jogadas); bool jogar(int posicao, bool vezJogador1); bool jogarDeNovo(); void cadastrarJogadores(); void checarCampeao(); void desenharTabuleiro(); void mostrarRelatorio(int status); void reiniciarTabuleiro(); cadastrarJogadores(); do { bool vezJogador1 = true; int jogadas = 0; int status = -1; int posicao = 0; reiniciarTabuleiro(); while (jogadas < 9 && status == -1) { do { desenharTabuleiro(); printf("%s > ", (vezJogador1 ? j1.nome : j2.nome)); scanf("%i", &posicao); vezJogador1 = jogar(posicao, vezJogador1); } while (posicao < 1 || posicao > 9); ++jogadas; status = checarFimPartida(jogadas); if (status == 1) j1.pontos++; else if (status == 2) j2.pontos++; } desenharTabuleiro(); mostrarRelatorio(status); } while (jogarDeNovo()); checarCampeao(); return 0; } void cadastrarJogadores() { strcpy(j1.nome, "Jogador 1"); j1.pontos = 0; strcpy(j2.nome, "Jogador 2"); j2.pontos = 0; } int checarFimPartida(int jogadas) { /* * -1 - Jogo continua * 0 - Empate * 1 - Jogador 1 * 2 - Jogador 2 */ int situacao; if ((c1.simbolo == 'X' && c2.simbolo == 'X' && c3.simbolo == 'X') || (c4.simbolo == 'X' && c5.simbolo == 'X' && c6.simbolo == 'X') || (c7.simbolo == 'X' && c8.simbolo == 'X' && c9.simbolo == 'X') || (c1.simbolo == 'X' && c4.simbolo == 'X' && c7.simbolo == 'X') || (c2.simbolo == 'X' && c5.simbolo == 'X' && c8.simbolo == 'X') || (c3.simbolo == 'X' && c6.simbolo == 'X' && c9.simbolo == 'X') || (c1.simbolo == 'X' && c5.simbolo == 'X' && c9.simbolo == 'X') || (c7.simbolo == 'X' && c5.simbolo == 'X' && c3.simbolo == 'X')) { situacao = 1; } else if ((c1.simbolo == 'O' && c2.simbolo == 'O' && c3.simbolo == 'O') || (c4.simbolo == 'O' && c5.simbolo == 'O' && c6.simbolo == 'O') || (c7.simbolo == 'O' && c8.simbolo == 'O' && c9.simbolo == 'O') || (c1.simbolo == 'O' && c4.simbolo == 'O' && c7.simbolo == 'O') || (c2.simbolo == 'O' && c5.simbolo == 'O' && c8.simbolo == 'O') || (c3.simbolo == 'O' && c6.simbolo == 'O' && c9.simbolo == 'O') || (c1.simbolo == 'O' && c5.simbolo == 'O' && c9.simbolo == 'O') || (c7.simbolo == 'O' && c5.simbolo == 'O' && c3.simbolo == 'O')) { situacao = 2; } else if (jogadas == 9) { situacao = 0; } else { situacao = -1; } return situacao; } void checarCampeao() { printf("\n"); printf("------------------------------------------------------------- \n"); printf("Placar: \n"); printf(" %10s > %i pontos \n", j1.nome, j1.pontos); printf(" %10s > %i pontos \n\n", j2.nome, j2.pontos); if (j1.pontos == j2.pontos) printf(">> Empate entre %s e %s. Parabéns aos dois. << \n", j1.nome, j2.nome); else printf(">> Parabéns %s, você venceu o jogo. << \n", (j1.pontos > j2.pontos ? j1 : j2).nome); printf("------------------------------------------------------------- \n\n"); } void desenharTabuleiro() { system("clear"); printf("-------------------------------------- \n"); printf(" Jogo da Velha \n"); printf("-------------------------------------- \n\n"); printf(" 1 | 2 | 3 %c | %c | %c \n", c1.simbolo, c2.simbolo, c3.simbolo); printf("---*---*--- ---*---*--- \n"); printf(" 4 | 5 | 6 %c | %c | %c \n", c4.simbolo, c5.simbolo, c6.simbolo); printf("---*---*--- ---*---*--- \n"); printf(" 7 | 8 | 9 %c | %c | %c \n\n", c7.simbolo, c8.simbolo, c9.simbolo); } bool jogar(int posicao, bool vezJogador1) { switch (posicao) { case 1: if (c1.disponivel) { c1.simbolo = vezJogador1 ? 'X' : 'O'; c1.disponivel = false; vezJogador1 = !vezJogador1; } break; case 2: if (c2.disponivel) { c2.simbolo = vezJogador1 ? 'X' : 'O'; c2.disponivel = false; vezJogador1 = !vezJogador1; } break; case 3: if (c3.disponivel) { c3.simbolo = vezJogador1 ? 'X' : 'O'; c3.disponivel = false; vezJogador1 = !vezJogador1; } break; case 4: if (c4.disponivel) { c4.simbolo = vezJogador1 ? 'X' : 'O'; c4.disponivel = false; vezJogador1 = !vezJogador1; } break; case 5: if (c5.disponivel) { c5.simbolo = vezJogador1 ? 'X' : 'O'; c5.disponivel = false; vezJogador1 = !vezJogador1; } break; case 6: if (c6.disponivel) { c6.simbolo = vezJogador1 ? 'X' : 'O'; c6.disponivel = false; vezJogador1 = !vezJogador1; } break; case 7: if (c7.disponivel) { c7.simbolo = vezJogador1 ? 'X' : 'O'; c7.disponivel = false; vezJogador1 = !vezJogador1; } break; case 8: if (c8.disponivel) { c8.simbolo = vezJogador1 ? 'X' : 'O'; c8.disponivel = false; vezJogador1 = !vezJogador1; } break; case 9: if (c9.disponivel) { c9.simbolo = vezJogador1 ? 'X' : 'O'; c9.disponivel = false; vezJogador1 = !vezJogador1; } break; } return vezJogador1; } bool jogarDeNovo() { char opcao = ' '; printf("\n"); while (true) { printf("Jogar novamente? [ S / N ]: "); scanf(" %c", &opcao); if (opcao == 's' || opcao == 'S') return true; else if (opcao == 'n' || opcao == 'N') return false; } } void mostrarRelatorio(int status) { switch (status) { case 0: printf("A partida empatou entre %s e %s. \n", j1.nome, j2.nome); break; case 1: printf("%s venceu a partida. \n", j1.nome); break; case 2: printf("%s venceu a partida. \n", j2.nome); break; default: printf("[ E ]: Valor inválido do status: '%i'. \n", status); exit(1); } } void reiniciarTabuleiro() { c1.simbolo = ' '; c1.disponivel = true; c2.simbolo = ' '; c2.disponivel = true; c3.simbolo = ' '; c3.disponivel = true; c4.simbolo = ' '; c4.disponivel = true; c5.simbolo = ' '; c5.disponivel = true; c6.simbolo = ' '; c6.disponivel = true; c7.simbolo = ' '; c7.disponivel = true; c8.simbolo = ' '; c8.disponivel = true; c9.simbolo = ' '; c9.disponivel = true; }
  13. @Leandro20x Poderia sem problema nenhum. É que pelo contexto do problema, você está desenvolvendo um programa para aplicação científica, então usei o double porque ele possui uma precisão maior.
  14. ++x é o mesmo que x++, geralmente a diferença só é vista em algumas situações, no caso desse projeto não faz diferença de qual usar. x -= y é a abreviação de x = x - y. E a lógica segue para todas as variantes (+=, -=, *=, /=, %=).
  15. @gramosiri Rapaz, que trabalho! Mas parece que deu certo. Testa aí com o máximo de valores ímpares possíveis e veja se está tudo certo: #include <stdio.h> #include <stdlib.h> int main() { int nota_2 = 0; int nota_5 = 0; int nota_10 = 0; int nota_20 = 0; int nota_50 = 0; int nota_100 = 0; int valor = 21; // Pode receber do usuário int valorCalculado = valor; // É usado para determinar a quantidade de notas de 2 e 5 sem perder o valor original // Se o valor for ímpar, então começa a contar da nota de 5. if (valor % 2 != 0) { if (valor < 5) { printf("Não é possível calcular esse valor."); return 1; } else if (valor % 5 == 0) { // Se o valor for múltiplo de cinco, então apenas notas de 5 já resolvem. while (valorCalculado > 0) { ++nota_5; valorCalculado -= 5; } } else { /* * Se for ímpar, precisamos tirar notas de 5 até que ele se torne par, * depois as notas de 2 resolvem o resto. * * O -2 da primeira condição verifica se, reservando uma nota de 2, * ainda tem a possibilidade de remover alguma nota de 5. * * Já a segunda condição verifica se reservando uma nota de 2, o valor * resultante é ímpar. Porque se não for, as notas de 2 resolvem. */ while ((valorCalculado - 2) >= 5 && (valorCalculado - 2) % 2 != 0) { ++nota_5; valorCalculado -= 5; } } } /* * Se o valor for par, ele será totalmente calculado com notas de 2 e * posteriormente, se houver a possibilidade, essas notas serão trocadas * por notas mais altas. */ while (valorCalculado >= 2) { ++nota_2; valorCalculado -= 2; } /* * A partir daqui começa o processo de troca das notas por notas mais altas. * A cada cinco notas de 2 trocamos por uma nota de 10. */ while (nota_2 >= 5) { nota_2 -= 5; ++nota_10; } // A cada duas notas de 5 trocamos por uma de 10. while (nota_5 >= 2) { nota_5 -= 2; ++nota_10; } // A cada duas notas de 10 trocamos por uma de 20. while (nota_10 >= 2) { nota_10 -= 2; ++nota_20; } // A cada duas notas de 20 com uma nota de 10 trocamos por uma de 50. while (nota_20 >= 2 && nota_10 >= 1) { nota_20 -= 2; nota_10 -= 1; ++nota_50; } // A cada cinco notas de 20 trocamos por uma de 100. while (nota_20 >= 5) { nota_20 -= 5; ++nota_100; } // A cada duas notas de 50 trocamos por uma de 100. while (nota_50 >= 2) { nota_50 -= 2; ++nota_100; } printf("Valor: R$ %i \n", valor); printf("%i de R$ 2 (= R$ %i) \n", nota_2, (nota_2 * 2)); printf("%i de R$ 5 (= R$ %i) \n", nota_5, (nota_5 * 5)); printf("%i de R$ 10 (= R$ %i) \n", nota_10, (nota_10 * 10)); printf("%i de R$ 20 (= R$ %i) \n", nota_20, (nota_20 * 20)); printf("%i de R$ 50 (= R$ %i) \n", nota_50, (nota_50 * 50)); printf("%i de R$ 100 (= R$ %i) \n", nota_100, (nota_100 * 100)); return 0; }
  16. Vish, você tem razão!!! Nem pensei nessa possibilidade. Foi mal... Tenta o seguinte: analisa a entrada do usuário, caso seja par, comece a contar a partir da nota mais alta normalmente. Caso seja ímpar, comece do 5 e caso esse 5 apareça mais uma vez, troque por 10.
  17. Esquece um pouco a programação. Pensa comigo: "Como chegar no número 11, somando apenas os números [2, 5, 10, 20, 50, 100]?"
  18. Tenta assim: #include <stdio.h> #include <stdlib.h> int main() { double massaInicial = 0.0; double massaFinal = 0.0; int segundos = 0; int minutos = 0; int horas = 0; printf("Massa (g) do material: "); scanf("%lf", &massaInicial); massaFinal = massaInicial; // Executa até que a massa seja MENOR que 0.5 // Para que o programa pare quando a massa FOR 0.5, remova o sinal de igual for (segundos = 0; massaFinal >= 0.5; segundos += 50) massaFinal /= 2; minutos = segundos / 60; segundos %= 60; horas = minutos / 60; minutos %= 60; printf("--------------------------- \n"); printf("Massa inicial: %lf \n", massaInicial); printf(" Massa atual: %lf \n", massaFinal); printf(" Tempo: %2i:%2i:%2i \n", horas, minutos, segundos); printf("--------------------------- \n"); return 0; }
  19. Não entendi o porque de pegar duas entradas do usuário. Pelo que eu entendi do enunciado, você deve pegar a entrada do usuário e depois imprimir de forma intercalada as palavras, não é isso? Veja se esse código te ajuda de alguma forma: import java.util.Scanner; public class Principal { public static void main(String[] args) { String entrada; String saida; String[] palavras; do { System.out.print("Sua frase: "); entrada = new Scanner(System.in).nextLine(); if (!entrada.equalsIgnoreCase("sair")) { palavras = entrada.split(" "); saida = ""; for (int i = 0; i < palavras.length; i += 2) saida += palavras[i] + " "; saida = saida.trim(); System.out.println("Saída: \"" + saida + "\""); } } while (!entrada.equalsIgnoreCase("sair")); System.exit(0); } }
  20. https://www.youtube.com/channel/UCjF0OccBT05WxsJb2zNkL4g Procura a playlist Maratona Java. É um curso excelente.
  21. Pensa na interface da seguinte forma: "A classe que implementa a interface sabe o que tem que fazer, mas não sabe como." Você já deve ter percebido que os métodos das interfaces não possuem corpo, apenas a declaração. Isso significa que a classe que implementar essa interface já sabe o que tem que fazer porque o método já foi declarado, mas não sabe como e é por isso que você deve implementar as funções. adicionado 29 minutos depois Segue um exemplo funcional: Interface FormaGeometrica: package pacote; /** * A classe que implementar essa interface já sabe o que tem que fazer: * - calcular a área da figura * - calcular o perímetro da figura * * Mas ainda não sabe como vai fazer isso. É por isso que as funções não tem corpo. */ public interface FormaGeometrica { double calcularArea(); double calcularPerimetro(); } classe Quadrado: package pacote; public class Quadrado implements FormaGeometrica { private double lado; public Quadrado() { } public Quadrado(double lado) { this.lado = lado; } public double getLado() { return lado; } public void setLado(double lado) { this.lado = lado; } @Override public double calcularArea() { return lado * lado; } @Override public double calcularPerimetro() { return lado * 4; } } classe Circulo: package pacote; public class Circulo implements FormaGeometrica { private double raio; public Circulo() { } public Circulo(double raio) { this.raio = raio; } public double getRaio() { return raio; } public void setRaio(double raio) { this.raio = raio; } @Override public double calcularArea() { return Math.PI * (raio * raio); } @Override public double calcularPerimetro() { return 2 * Math.PI * raio; } } classe Principal: package pacote; public class Principal { public static void main(String[] args) { FormaGeometrica quadrado1 = new Quadrado(3); FormaGeometrica quadrado2 = new Quadrado(12); FormaGeometrica quadrado3 = new Quadrado(6); FormaGeometrica quadrado4 = new Quadrado(2); FormaGeometrica circulo1 = new Circulo(3); FormaGeometrica circulo2 = new Circulo(12); FormaGeometrica circulo3 = new Circulo(6); FormaGeometrica circulo4 = new Circulo(2); System.out.println(">> Área quadrados"); exibirArea(quadrado1); exibirArea(quadrado2); exibirArea(quadrado3); exibirArea(quadrado4); System.out.println(">> Área circulos"); exibirArea(circulo1); exibirArea(circulo2); exibirArea(circulo3); exibirArea(circulo4); System.out.println(">> Perímetro quadrados"); exibirPerimetro(quadrado1); exibirPerimetro(quadrado2); exibirPerimetro(quadrado3); exibirPerimetro(quadrado4); System.out.println(">> Perímetro circulos"); exibirPerimetro(circulo1); exibirPerimetro(circulo2); exibirPerimetro(circulo3); exibirPerimetro(circulo4); } private static void exibirArea(FormaGeometrica forma) { System.out.println("Área: " + forma.calcularArea()); } private static void exibirPerimetro(FormaGeometrica forma) { System.out.println("Perímetro: " + forma.calcularPerimetro()); } } Perceba na classe Principal que os métodos não especificam que o argumento deve ser um quadrado ou um círculo, apenas diz que deve ser uma forma geométrica, ou seja, qualquer classe que implemente a interface FormaGeometrica será aceita por esse método. Isso evita que você tenha que criar uma função para o quadrado, outra para o círculo, e assim por diante.
  22. Pelo que eu entendi, você vai precisar de três arquivos: main.cpp: É a sua classe principal. Signo.h: Possui os protótipos dos métodos da classe Signo. Signo.cpp: Possui a implementação de todos os métodos declarados na classe Signo.h. Vamos aos códigos: Signo.h #include <iostream> class Signo { private: std::string nome; std::string qualidade; public: Signo(); Signo(std::string nome, std::string qualidade); std::string getNome(); void setNome(std::string nome); std::string getQualidade(); void setQualidade(std::string qualidade); }; Signo.cpp #include "Signo.h" Signo::Signo() { setNome(""); setQualidade(""); } Signo::Signo(std::string nome, std::string qualidade) { setNome(nome); setQualidade(qualidade); } std::string Signo::getNome() { return nome; } void Signo::setNome(std::string nome) { this->nome = nome; } std::string Signo::getQualidade() { return qualidade; } void Signo::setQualidade(std::string qualidade) { this->qualidade = qualidade; } main.cpp #include <iostream> #include "Signo.h" int main() { // Relaciona o mês com a quantidade de dias int relacaoDiaMes[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // Cria a coleção de signos disponíveis Signo signos[12] = { Signo("Capricórnio", "Bonito"), Signo("Aquário", "Molhadinho"), Signo("Peixes", "Medroso"), Signo("Áries", "Cornélio"), Signo("Touro", "Chifrudo"), Signo("Gêmeos", "Plagiador"), Signo("Câncer", "Doente"), Signo("Leão", "Nervoso"), Signo("Virgem", "Raro"), Signo("Libra", "Justo"), Signo("Escorpião", "Perigoso"), Signo("Sagitário", "Não sei") }; int dia; int mes; std::cout << "Dia de nascimento: "; std::cin.ignore(0, '\n'); // Limpa o buffer para evtar erros de leitura std::cin >> dia; std::cout << "Mês de nascimento: "; std::cin.ignore(0, '\n'); std::cin >> mes; if (mes < 0 || mes > 12) { std::cerr << "[ E ]: O mês de nascimento não é válido." << "\n"; return 1; // Qualquer coisa diferente de 0 indica algum tipo de problema } if (dia <= 0 || dia > relacaoDiaMes[mes - 1]) { std::cerr << "[ E ]: O dia de nascimento não é válido." << "\n"; return 2; } std::cout << "---------------------------------------" << "\n" << " Seu signo é: " << signos[mes - 1].getNome() << "\n" << "Sua qualidade é: " << signos[mes - 1].getQualidade() << "\n" << "---------------------------------------" << "\n"; return 0; } Veja se isso atende à suas necessidades.
  23. Dentro do contexto do seu exemplo, imagine que você tem uma função que retorna o valor da área de uma forma geométrica, não importa qual seja. Sem usar polimorfismo, você deveria criar essa função para cada uma das formas geométricas que você está trabalhando. Já usando polimorfismo você só precisa pedir a interface FormaGeometrica e qualquer classe que implemente essa interface automaticamente também será aceita. Recomendo os cursos do DevDojo. Seguem as aulas referentes ao polimorfismo em ordem 1, 2 e 3: https://www.youtube.com/watch?v=Ps2ptq1twyA https://www.youtube.com/watch?v=FukH_mIRzV8 https://www.youtube.com/watch?v=PMFxgfqYYuE
  24. Um outro exemplo sem usar vetor: #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char nome[10] = ""; char nomeCampeao[10] = ""; int ponto = 0; int pontoCampeao = -1000; const int quantidade = 10; for(int i = 0; i < quantidade; ++i) { printf("Nome do atleta: "); scanf("%s", nome); printf("Pontuação do %s: ", nome); scanf("%i", &ponto); if (ponto > pontoCampeao) { strcpy(nomeCampeao, nome); pontoCampeao = ponto; } } printf("Campeão: %s com %i pontos. \n", nomeCampeao, pontoCampeao); return 0; }
  25. Eu errei, a lógica da condição de parada está invertida, também tinha um bug com a contagem da quantidade e removi a variável inútil e o import dela. Segue o código corrigido: #include <stdio.h> #include <stdlib.h> int main() { int quantidade; double entrada; double media; char repetir = 's'; do { entrada = 0; media = 0; for (quantidade = 0; entrada >= 0; ++quantidade) { do { printf("Nota [%i]: ", (quantidade + 1)); scanf("%lf", &entrada); } while (entrada > 10); if (entrada >= 0) media += entrada; else --quantidade; } if (quantidade > 0) media /= quantidade; if (media >= 6) printf("\nAprovado\n"); else printf("\nReprovado\n"); printf("Media: %.2f \n", media); printf("\nSe quiser efetuar outro calculo digite s, se nao quiser, digite n: "); scanf(" %c", &repetir); } while(repetir == 's'); return 0; }

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