Ir ao conteúdo
  • Cadastre-se

Leucosia

Membro Júnior
  • Posts

    10
  • Cadastrado em

  • Última visita

Reputação

2
  1. Olá gente, Estou com dificuldade para programar e exibir os dados dos atletas que a questão pede em ordem decrescente. Dei uma olhada em outros fóruns e utilizei a solução que encontrei porém ainda assim não funciona. Segue a questão: Crie uma estrutura representando um atleta. Ela deve conter nome, esporte, idade e altura. Escreva um programa que leia os dados de cinco atletas e os exiba por ordem de idade, do mais velho para o mais novo. Segue meu código (coloquei que seriam apenas 3 atletas para o teste ser mais rápido): #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> typedef struct{ char nome[40], esporte[30]; int idade; float altura; }atleta; void decrescente(atleta *atletas){ int i,j; atleta aux; for(int i=1;i>3;i++){ j=i; aux=atletas[j]; while((j>0)&&(aux.idade<atletas[j-1].idade)){ atletas[j]=atletas[j-1]; j--; } atletas[j]=aux; } for(i=3;i>=0;i--){ printf("%s, %d anos, %.2f m. Modalidade: %s.\n", atletas[i].nome, atletas[i].idade, atletas[i].altura, atletas[i].esporte); } } int main(){ atleta atletas[3]; setlocale(LC_ALL,"Portuguese"); int aux; for (int i=0;i<3;i++){ printf("Olá!\nPor favor, insira seu nome: "); scanf("%s",&atletas[i].nome); printf("%s, qual o seu esporte?: ",atletas[i].nome); scanf("%s",&atletas[i].esporte); printf("%s, insira sua idade: ",atletas[i].nome); scanf("%d",&atletas[i].idade); printf("%s, insira a sua altura: ",atletas[i].nome); scanf("%f", &atletas[i].altura); printf("\n\n"); } printf("ORDENANDO EM ORDEM DECRESCENTE\n\n"); decrescente(atletas); system("pause"); }
  2. @Flávio Pedroza @Midori Muito obrigada! Funcionou, porém está dando outro erro Ao invés de exibir o nome da pessoa mais nova, está exibindo a letra "D", sendo que não foi isso que eu digitei Testei o programa com apenas 3 pessoas para caber no print (a questão pede 6) Segue o código novamente #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> struct nascimento{ char nome[40]; int dia,mes,ano; }; int main(){ setlocale(LC_ALL,"Portuguese"); struct nascimento dados[6]; printf("\t\tCALCULANDO A MAIOR E MENOR IDADE ENTRE 5 PESSOAS\n\n"); for(int i=0;i<3;i++){ printf("Olá!\nPor favor, insira seu nome: "); scanf("%s",dados[i].nome); printf("%s, digite o dia que você nasceu: ",dados[i].nome); scanf("%d",&dados[i].dia); printf("%s, digite o mês que você nasceu: ",dados[i].nome); scanf("%d",&dados[i].mes); printf("%s, digite o ano que você nasceu: ",dados[i].nome); scanf("%d",&dados[i].ano); printf("\n\n"); } int diatual=24,mesatual=2,anoatual=2022,idmaisvelha=-1,idmaisnova=0; char maisnova[40],maisvelha[40]; for (int i=0;i<3;i++){ int totalIdade=365*anoatual+30*mesatual+diatual-365*dados[i].ano-30*dados[i].mes-dados[i].dia; if(totalIdade>idmaisvelha){ idmaisvelha=totalIdade; strcpy(maisvelha,dados[i].nome); } if(totalIdade<idmaisnova){ idmaisnova=totalIdade; strcpy(maisnova,dados[i].nome); } int anos=totalIdade/365; totalIdade=totalIdade%365; int meses=totalIdade/30; totalIdade=totalIdade%30; int dias=totalIdade; printf("%s tem %d anos, %d meses e %d dias de idade.\n",dados[i].nome,anos,meses,dias); } printf("%s é a pessoa mais velha.\n %s é a pessoa mais nova.\n",maisvelha,maisnova); system("pause"); }
  3. Crie uma estrutura capaz de armazenar o nome e a data de nascimento de uma pessoa. Agora, escreva um programa que leia os dados de seis pessoas. Calcule e exiba os nomes da pessoa mais velha e da mais nova. Código abaixo: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> struct nascimento{ char nome[40]; int dia,mes,ano; }; int main(){ setlocale(LC_ALL,"Portuguese"); struct nascimento dados[6]; printf("\t\tCALCULANDO A MAIOR E MENOR IDADE ENTRE 5 PESSOAS\n\n"); for(int i=0;i<6;i++){ printf("Olá!\nPor favor, insira seu nome: "); scanf("%s",dados[i].nome); printf("%s, digite o dia que você nasceu: ",dados[i].nome); scanf("%d",&dados[i].dia); printf("%s, digite o mês que você nasceu: ",dados[i].nome); scanf("%d",&dados[i].mes); printf("%s, digite o ano que você nasceu: ",dados[i].nome); scanf("%d",&dados[i].ano); printf("\n\n"); } int diatual=24,mesatual=2,anoatual=2022,idmaisvelha=-1,idmaisnova=0; char maisnova,maisvelha; for (int i=0;i<6;i++){ int totalIdade=365*anoatual+30*mesatual+diatual-365*dados[i].ano-30*dados[i].mes-dados[i].dia; if(totalIdade>idmaisvelha){ idmaisvelha=totalIdade; strcpy(maisvelha,dados[i].nome); } if(totalIdade<idmaisnova){ idmaisnova=totalIdade; strcpy(maisnova,dados[i].nome); } int anos=totalIdade/365; totalIdade=totalIdade%365; int meses=totalIdade/30; totalIdade=totalIdade%30; int dias=totalIdade; printf("%s tem %d anos, %d meses e %d dias de idade.\n",dados[i].nome,anos,meses,dias); } printf("%s é a pessoa mais velha.\n%s é a pessoa mais nova.\n",maisvelha,maisnova); system("pause"); } Meu compilador está apresentando o seguinte erro: [Error] invalid conversion from 'char' to 'char*' [-fpermissive] [Note] initializing argument 1 of 'char* strcpy(char*, const char*)' Isso nas duas linhas que tem strcpy(maisnova...) e strcpy(maisvelha...). Alguém saberia dizer o porquê?
  4. Crie uma estrutura representando um aluno de uma disciplina. Essa estrutura deve conter o número de matrícula do aluno, seu nome e as notas de três provas. Agora, escreva um programa que leia os dados de cinco alunos e os armazena nessa estrutura. Em seguida, exiba o nome e as notas do aluno que possui a maior média geral dentre os cinco. Esse é o enunciado da questão que estou em dúvida, consigo preencher a estrutura normalmente, porém na hora de exibir o nome e as notas do aluno que possui a maior média eu dou uma travada, pois ele exibe o último dado a ser digitado (no caso, os dados do 5º aluno que digito), e não o que tem as maiores notas/média. Alguém saberia me ajudar? #include <stdio.h> #include <stdlib.h> #include <locale.h> struct DadosAluno{ int matricula; float nota1,nota2,nota3; char nome[30]; }; int main(){ struct DadosAluno aluno; float somamedia=0,media=0,maiormedia=0; setlocale(LC_ALL,"Portuguese"); printf("\t\tCALCULANDO A MAIOR MÉDIA ENTRE 5 ALUNOS\n\n"); for (int i=0;i<5;i++){ printf("Olá!\nPor favor, digite seu nome: "); scanf("%s",&aluno.nome); printf("%s, digite o número de sua matrícula: ",aluno.nome); scanf("%d",&aluno.matricula); printf("Digite a primeira nota: "); scanf("%f",&aluno.nota1); printf("Digite a segunda nota: "); scanf("%f",&aluno.nota2); printf("Digite a terceira nota: "); scanf("%f",&aluno.nota3); printf("\n\n"); somamedia=aluno.nota1+aluno.nota2+aluno.nota3; media=somamedia/3; }if(maiormedia>media){ maiormedia==media; printf("A maior média é de %.2f, do aluno %s, matrícula de número %d.\n",maiormedia,aluno.nome,aluno.matricula); } }
  5. Oi pessoal, espero que estejam todos bem Então, eu percebi ontem que os pinos do cabo de alimentação do PS5 estão meio que corroídos, provavelmente deve ser faísca da extensão, sempre que conecto o cabo na extensão escuto uns barulhos das faíscas. Imagens seguem em anexo. Minha dúvida é: isso é problema da extensão ou da tomada que a extensão está conectada? Posso continuar usando esse cabo na extensão ou vocês não recomendam? Tenho medo até de queimar. Já testei outros cabos e nenhum deles dá esse barulho de faísca, apenas o cabo de alimentação do PS5.
  6. Leucosia

    C++ Erro no switch case

    Olá pessoal, estou fazendo uma atividade usando switch...case e deu um erro que nunca tinha dado pra mim antes, já pesquisei como resolver e alguns falaram para usar aspas simples ao invés de aspas duplas mas não funcionou... Segue o código, juntamente com o enunciado da questão: //Uma empresa vende o mesmo produto para quatro diferentes estados. Cada estado possui uma taxa diferente de //imposto sobre o produto. Faça um programa em que o usuário entre com o valor e o estado de destino do produto //e o programa retorne o preço final do produto acrescido do imposto do estado em que ele será vendido. Se o //estado digitado não for válido, mostrará uma mensagem de erro. //MG 7% SP 12% RJ 15% MS 8% #include <stdio.h> #include <stdlib.h> #include <locale.h> int main(){ setlocale(LC_ALL,"Portuguese"); char estado; float val_prod,val_final; printf("Insira o valor do produto: "); scanf("%f",&val_prod); printf("Insira o Estado de destino do produto (MG, SP, RJ ou MS): "); scanf("%s",&estado); switch (estado){ case 'mg' : case 'MG' : val_final=val_prod*0.07; printf("Para MG, o produto com imposto fica por R$%.2f.\n",val_final); break; case 'sp' : case 'SP' : val_final=val_prod*0.12; printf("Para SP, o produto com imposto fica por R$%.2f.\n",val_final); break; case 'rj' : case 'RJ' : val_final=val_prod*0.15; printf("Para RJ, o produto com imposto fica por R$%.2f.\n",val_final); break; case 'ms' : case 'MS' : val_final=val_prod*0.08; printf("Para MS, o produto com imposto fica por R$%.2f.\n",val_final); break; default: printf("Por favor, insira um estado entre MG, SP, RJ ou MS.\n"); } printf("\n\n"); printf("Obrigada pela preferência!\n"); system("pause"); } O erro que está dando: [Warning] multi-character character constant [-Wmultichar] [Warning] case label value exceeds maximum value for type Detalhe: quando coloco número com casa decimal, o programa pula tudo e vai direto pro system("pause").
  7. @Midori Realmente o erro era por conta da indentação e sua solução de colocar: print(frase.replace(" ",'')) deu certo também. Muito obrigada pelo retorno!! Eu programei bastante em C ano passado, e não tinha erro compilar e executar o arquivo com a indentação incorreta. Apenas era ruim para quem estava lendo o código, mas caso o mesmo não tivesse erro algum, ainda executava normalmente. Acostumei a isso, Python tá sendo bem diferente de tudo que eu já tinha aprendido.
  8. @Midori Ainda não consigo resolver o problema Alguma ideia do que possa ser?
  9. Oi gente, tudo bem? Esse é o meu primeiro post aqui, sou super iniciante na linguagem Python e estou fazendo exercícios a fim de melhorar meu desempenho. Porém me deparo com uma questão de uma apostila que é assim: 2 - Escreva um programa que solicite uma frase ao usuário e escreva a frase toda em maiúscula e sem espaços em branco. Eu consegui deixar todas maiúsculas, foi bem fácil. Porém, não consegui retirar os espaços em branco com o comando strip(). Alguém já usou o mesmo e que saiba me ajudar, por favor?

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