Jump to content
Fórum Script Brasil

Hazzu

Membros
  • Posts

    80
  • Joined

  • Last visited

1 Follower

About Hazzu

  • Birthday 10/08/1997

Contatos

  • Website URL
    discord.gg/vets

Perfil

  • Gender
    Male
  • Location
    Natal, RN

Recent Profile Visitors

761 profile views

Hazzu's Achievements

0

Reputation

  1. Já falei na sua publicação anterior para utilizar a ferramenta de inserção de código. Deste vez não vou me dar o trabalho de ler esse código sem marcação.
  2. Duvida de um exercicio com matrizes - Tutoriais & Dicas - C, C++ - Fórum Script Brasil
  3. Ao postar seu código no fórum, use a ferramenta de inserção de código (quarto ícone do menu). Você definiu retangulo como um vetor de estruturas do tipo struct retangulos. Em C, o valor de um vetor é um ponteiro (endereço de memória) que aponta para a primeira casa do vetor. Sendo assim, você precisaria recuperar a estrutura apontada pelo ponteiro antes de acessar o atributo pontoDIE: scanf("%f %f", &(*retangulo).pontoDIE Ao se trabalhar com ponteiros e estruturas em C, é frequente a necessidade de obtenção do valor apontado pelo ponteiro e acesso aos campos da estrutura. Para abreviar a notação acima, C adicionou o operador de seta: scanf("%f %f", &retangulo->pontoDIE E este é o motivo pelo qual seu código funciona assim. Todavia, você não deseja trabalhar somente como o primeiro valor do vetor, e sim ir adicionando a medida que o usuário demande. Sendo assim, seu código deve fazer a adequada referência aos índices do vetor retangulos: #include <stdio.h> #define MAX_SIZE 3 typedef struct retangulo{ float pontoDIE; //PONTO DIAGONAL INFERIOR ESQUERDO float pontoDSD; //PONTO DIAGONAL SUPERIOR DIREITO } Retangulo; int main () { int tam = 1; int digito = 1; Retangulo retangulos[MAX_SIZE]; while (digito != 2 && tam < MAX_SIZE) { printf("Digite os valores do PONTO DIAGONAL INFERIOR ESQUERDO e PONTO DIAGONAL SUPERIOR DIREITO do retângulo %d: \n", tam); scanf("%f %f", &retangulos[tam-1].pontoDIE, &retangulos[tam-1].pontoDSD); printf("Desejas acrescentar mais retangulos: (1)SIM, (2)não: \n"); scanf("%d", &digito); if(digito == 1){ tam++; } } printf("O numero de TAM de retangulos e %d\n", tam); return 0; } Extras: - Utilize a instrução typedef para renomear suas estruturas e facilitar as referências. - Declare suas constantes através da diretiva #define para facilitar posterior alteração do seu valor.
  4. Primeiramente, ao postar um código no fórum, utilizem a ferramenta de inserção de código (quarto ícone do menu). A quantidade de sessões e atletas devem ser declaradas como constantes para fácil alteração posteriormente. A fim de te fornecer um modelo de código para resolução dos seus problemas, elaborei a solução deste exercício devidamente comentada. Se tiver alguma dúvida, sinta-se a vontade para perguntar. //Programa: Time Run //Função: Analisar tempos de atletas em treinos //Autor: Hazzu#0707 //Data: 28/01/2021 //Cabeçalhos #include <stdio.h> //Constantes #define ATL 3 //Quantidade de atletas #define SES 5 //Quantidade de sessões //Função principal int main(){ //Declaração de variáveis float tempos[SES][ATL]; //Matriz de tempos Sessão X Atleta float soma, maximo; int i, j; //Apresentação printf("------ Time Run ------\n"); printf("Olá, este programa irá analisar os tempos dos treinos.\n"); //Coleta de dados for (i=0; i<SES; i++){ for (j=0; j<ATL; j++){ printf("[treino %d][atleta %d]: ", i+1, j+1); scanf("%f", &tempos[i][j]); } } //Cálculo de tempos máximos dos atletas printf("\nTempos Máximos\n"); for (j=0; j<ATL; j++){ maximo = tempos[0][j]; //Chutando tempo máximo como sendo o primeiro for (i=1; i<SES; i++){ if (tempos[i][j] > maximo){ maximo = tempos[i][j]; } } printf("Atleta %d: %.3f s\n", j+1, maximo); } //Cálculo de tempos médios das sessões printf("\nTempos Médios\n"); for (i=0; i<SES; i++){ soma = 0; for (j=0; j<ATL; j++){ soma += tempos[i][j]; } printf("Treino %d: %.3f s\n", i+1, soma/ATL); } //Encerrando programa printf("Obrigado por utilizar o programa!\n"); return 0; } Note que realizei a impressão dos resultados simultaneamente com o cálculo, evitando assim a necessidade de armazenar esses valores em vetores.
  5. Hazzu

    a

    Muita coisa jovem. Primeiramente, sua pergunta já está errada por não colocar o código embutido através da ferramenta de inserção de código. De cara já percebo um absurdo, que é utilizar o tipo float (ponto flutuante) para representar uma idade, típico dado int (inteiro). Eu reparei o código e deixo ao seu cargo comparar e entender o porquê das mudanças. /****************************************************************************** Online C Compiler. Code, Compile, Run and Debug C program online. Write your code in this editor and press "Run" button to compile and execute it. *******************************************************************************/ #include<stdio.h> #include<locale.h> #include<string.h> int main(){ setlocale(LC_ALL, "Portuguese"); char nome[100], nome_menor_idade[100]; int idade, ano, menor_idade, soma, qt; for(qt=1; qt<=3; qt++){ printf("%d° aluno\n", qt); printf("Digite Seu Nome e Sobrenome: "); fflush(stdin); //Limpando buffer scanf("%s", nome); do { printf("Informe o ano de seu nascimento: "); scanf("%d", &ano); } while(ano < 1900 || ano > 2020); idade = 2020 - ano; printf("Sua idade é: %d\n",idade); soma=soma+idade; if(qt==1){ menor_idade = idade; strcpy(nome_menor_idade, nome); } else if (idade<menor_idade) { menor_idade = idade; strcpy(nome_menor_idade, nome); } } printf("\n\n %s tem a menor idade, com %d anos.\n",nome_menor_idade, menor_idade); printf("\n\n A soma das idades é: %i",soma); return 0; }
  6. Use a ferramenta de inserção de códigos ao postar um aqui no fórum. Seu problema consiste em criar uma função bem simples: #include <stdio.h> //Assinatura das funções para que essas possam ser utilizadas em todo o código float tensao_saida(float vi, float r1, float r2); //Função principal int main (){ // Declara Variáveis float r1, r2, vin; //Solicita valor das variáveis printf ("Entre com as variaveis R1, R2 e Vin: "); scanf("%f %f %f", &r1, &r2, &vin); // Mostra resultados printf("Tensao de Saida: %f \n", tensao_saida(vin, r1, r2)); } //Função que calcula a tensão de saída float tensao_saida(float vi, float r1, float r2){ float vout = vi * r2 /(r1+r2); return vout; }
  7. Você precisa utilizar laços de repetição for para percorrer os elementos da matriz e testar se é par. //Programa: Login //Função: Calcular a soma dos termos pares de uma matriz //Autor: Hazzu#0707 //Data: 01/12/2020 //Cabeçalhos #include <stdio.h> //Função principal int main(){ //Declaração de variáveis int mat[3][3] = {11, 33, 44, 55, 77, 22, 88, 99, 66}; int soma_pares = 0; int i, j; //Procurando pares for (i=0; i<3; i++) { for (j=0; j<3; j++) { if (mat[i][j] % 2 == 0) { soma_pares += mat[i][j]; printf("%d e par\n", mat[i][j]); } } } //Resultado printf("A soma dos elementos pares e %d!\n", soma_pares); //Encerrando programa printf("Obrigado por utilizar o programa!\n"); return 0; }
  8. Monitoria de C no discord: Hazzu#0707
  9. Veja um exemplo de validação de login que eu já postei no fórum aqui. No seu caso, veja como ler o conteúdo de arquivos TXT.
  10. O correto é scanf("%d", &opcao1); O operador & é utilizado para passar o endereço de memória da variável, em vez de somente o seu valor. A função scanf espera o endereço da variável opcao (um ponteiro do tipo int *) para que consiga alterar o seu valor, mas você está passando apenas o seu valor (tipo int).
  11. //Programa: Login //Função: Ler e imprimir uma matriz inversamente //Autor: Hazzu#7444 //Data: 17/09/2020 //Cabeçalhos #include <stdio.h> //Constantes #define MAX 50 //Assinatura das funções void leMatriz(float matriz[][MAX], int l, int c); void imprimeMatriz(float matriz[][MAX], int l, int c); //Função principal int main(){ //Declaração de variáveis int m, n; float mat[MAX][MAX]; //Apresentação printf("Ola, este programa ira ler e imprimir uma matriz em ordem inversa.\n"); //Obtendo tamanho do{ printf("- Informe o tamanho da matriz no formato mxn (no maximo 50x50):\n"); scanf("%dx%d", &m, &n); } while (m<1 || m>50 || n<1 || n>50); //Lendo matriz leMatriz(mat, m, n); //Imprimindo matriz imprimeMatriz(mat, m, n); //Encerrando programa printf("Obrigado por utilizar o programa!\n"); return 0; } //Função que lê a matriz void leMatriz(float matriz[][MAX], int l, int c){ //Variáveis auxiliares int i, j; //Loop de leitura for (i=0; i<l; i++){ for (j=0; j<c; j++){ printf("Informe o elemento (%d,%d): ", i+1, j+1); scanf("%f", &matriz[i][j]); } } } //Função que imprime a matriz em ordem inversa void imprimeMatriz(float matriz[][MAX], int l, int c){ //Variáveis auxiliares int i, j; //Loop de impressão printf("\n----- MATRIZ INVERTIDA -----\n"); for (i=l-1; i>=0; i--){ for (j=c-1; j>=0; j--){ printf("%.1f\t", matriz[i][j]); //Imprimindo com uma casa decimal e tabulação } printf("\n"); //Quebra de linha } }
  12. Percorra todas as letras de texto com um laço de repetição, checando a cada iteração se a letra é uma vogal e, caso verdadeiro, altere para maiúsculo.
×
×
  • Create New...