Ir ao conteúdo
  • Cadastre-se

pedro.maciel

Membro Júnior
  • Posts

    12
  • Cadastrado em

  • Última visita

Tudo que pedro.maciel postou

  1. Estava fazendo um programa que retira a posição de uma lista. Está dando algum tipo de erro e eu não sei o porquê. Um exemplo que estou testando é retirar a posição 2. #include <stdio.h> #include <malloc.h> typedef struct node { int valor; struct node *proximo; } no; void insere ( no **inicio, int valor ){ no *aux = NULL; if ( *inicio == NULL ){ *inicio = ( no* ) malloc ( sizeof( no ) ); aux = *inicio; } else { aux = *inicio; while ( aux->proximo != NULL ) aux = aux ->proximo; aux->proximo = ( no* ) malloc( sizeof( no ) ); aux = aux ->proximo; } aux-> valor = valor; aux-> proximo = NULL; } void imprime ( no *list ){ //Função para imprimir os elementos da lista printf( "Números presentes na lista: "); while ( list != NULL ){ printf ( "%d, ", list->valor ); list = list->proximo; } printf ( "."); } void remove_elemento(no **list, int posicao){ no *aux = *list, *aux2 = NULL; int i; if((*list = NULL) || (posicao < 1)) return; if(posicao == 1){ aux = *list; *list = aux->proximo; free(aux); return; } for (i = 1; i < posicao-1; i++){ if(aux->proximo == NULL) return; aux = aux->proximo; } aux2 = aux->proximo; if(aux2 != NULL){ aux->proximo = aux2->proximo; free (aux2); } return; } int main(){ no *list = NULL; insere (&list, 10); insere (&list, 26); insere (&list, 30); insere (&list, 45); imprime (list); remove_elemento(&list, 2); //remover posição printf("\n"); imprime (list); return 0; }
  2. Olá. Meu código está praticamente pronto, mas devo imprimir os valores em ordem decrescente. Podem me ajudar? (A parte do <if> é porque devo imprimir os ímpares) #include <stdio.h> #include <stdlib.h> int main(void){ int b; int *x; int aux; int i; int a; x = (int *) malloc(sizeof(int) * a); printf("Insira a quantidade de valores que deseja alocar: "); scanf("%d", &a); printf("Digite o valor que deseja iniciar: "); scanf("%d", &b); for(int i = 0; i <= a; i++){ if (i % 2 == 1) printf("Os valores em ordem decrescente: %d\n", i); } }
  3. Como eu consigo calcular a média ponderada de cada disciplina e não apenas a média geral? #include <stdio.h> int main() { int i, j, a, b, nota2 = 1; float tpeso = 0, resultado = 0, tmedia = 0, nota[100][100], peso[100][100]; printf("Olá! Insira quantas disciplinas você terá: "); scanf ("%d", &i); printf("\nInsira quantas avaliações você terá em cada: "); scanf ("%d", &j); int mat[i][j]; for( a = 0; a < i; a++){ for( b = 0; b < j; b++) { printf("Digite a nota: "); scanf("%f", &nota[a][b]); printf("Digite o peso da nota: "); scanf("%f", &peso[a][b]); tmedia = tmedia + (nota[a][b] * peso[a][b]); tpeso = tpeso + peso[a][b]; nota2++; } } resultado = tmedia / tpeso; printf("\nA média geral: %.2f\n", resultado); }
  4. @Flávio Pedroza Obrigado, deu certo!
  5. Devo fazer um programa que peça ao usuário valores, para serem armazenados em um vetor de tamanho 5. Após, deve aparecer quais valores são pares, ímpares e primos. o meu está dando erro nos números primos, por exemplo, quando se digita 1; 2; 3; 4; 5, aparece que 5 não é um número não primo, o que está errado. Gostaria de ajuda para entender no que estou errando. #include<stdio.h> #define TAM 5 int main() { int vec_int[TAM]; int a, i, s, d = 0, r; float m; for(a = 0; a < TAM; a++) { printf("Digite um número: "); scanf("%d", &vec_int[a]); } for(a = 0; a < TAM; a++) //números pares e ímpares { if (vec_int [a] % 2 == 0) printf("\n%d é par", vec_int[a]); else printf("\n%d é ímpar", vec_int[a]); } for (a = 0; a < TAM; a++) //números primos { for (i = 2; i <= (vec_int[a] / 2); i++) if (vec_int[a] % i == 0){ d++; } if (d == 0) printf("\n%d é um número primo", vec_int[a]); else printf("\n%d não é um número primo", vec_int[a]); } }
  6. @arfneto Obrigado pela explicação. Foi bem clara e consegui entender no que eu estava pecando. Obrigado novamente.
  7. @devair1010 Obrigado, ajudou muito. @Lucca Rodrigues Gostei bastante do material. Valeu! @Math.Pi Obrigado pelo material!
  8. Preciso fazer um programa que retorne as 2 maiores notas. Creio que isso deva ser feito com passagem por referência, mas confesso que estou um pouco perdido. Tenho total ciência que meu código está errado, então gostaria que me dessem umas dicas de como chegar no correto #include <locale.h> float maioresnotas(float *n1, float *n2, float *n3){ if ( ( *n1 > *n2 ) && ( *n1 > *n3 ) ) return (*n1); if ( ( *n2 > *n1 ) && ( *n2 > *n3 ) ) return (*n2); return (*n3); //não estou conseguindo chegar no raciocinio de como retornar 2 valores aqui int main(){ float n1, n2, n3; printf("Digite a primeira nota: "); scanf("%f", &n1); printf("Digite a segunda nota "); scanf("%f", &n2); printf("Digite a terceira nota: "); scanf("%f", &n3); maioresnotas(&n1, &n2, &n3); printf("\n%.1f e %.1f\n", n1, n2, n3); }
  9. @arfneto Linguagem C. Devo fazer um código que insira números inteiros em uma lista e, depois, contabilizar (por meio de uma função) quantas vezes um número X se repete. Já fiz a parte de criar a lista e afins, mas estou com dificuldade em criar a função supracitada.
  10. Há alguma função que faça a contagem de quantas vezes um número se repete em uma lista encadeada?
  11. Devo fazer um programa que imprima na tela a sequência de 1 ao número digitado. Se o usuário digitar o número zero, número negativo ou número decimal. deve-se aparecer uma mensagem de erro e uma nova oportunidade de digitação de um número inteiro positivo. Erro: não estou conseguindo imprimir a mensagem de erro para um número decimal digitado. #include <stdio.h> main(){ int a, i; float b; printf("Digite um numero: "); scanf("%d", &a); if (a < 0){ printf("Erro! voce digitou um numero negativo.\n"); printf("Nova chance. Digite um numero: "); scanf("%d", &a); for(i = 1; i <= a; i++) printf("\n%d\n", i); } if (a == 0){ printf("Erro! voce digitou o numero zero.\n"); printf("Nova chance. Digite um numero: "); scanf("%d", &a); for(i = 1; i <= a; i++) printf("\n%d\n", i); } //Aqui deve vir a parte do erro de n° decimal if (a > 0){ for(i = 1; i <= a; i++) printf("%d\n", i); } 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...