Ir para conteúdo
Fórum Script Brasil

Lastman

Membros
  • Total de itens

    8
  • Registro em

  • Última visita

Sobre Lastman

Lastman's Achievements

0

Reputação

  1. Lastman

    (Resolvido) Exercicio

    Problema Resolvido! Agora sim as notas ficam nas ordem corretas. Mano muito obrigado pelas dicas e pela atenção, me salvo aqui. Qualquer dia posto algumas duvidas de java :P void ordena( Aluno *p ) { int i, j, aux; for(i=0; i < 5; i++) { for(j=i; j < 5; j++) { if (p->matricula[i] >= p->matricula[j]) { //usando uma variável auxiliar realiza a troca de posição. aux = p->matricula[i]; p->matricula[i] = p->matricula[j]; p->matricula[j] = aux; aux = p->nota1[i]; p->nota1[i] = p->nota1[j]; p->nota1[j] = aux; aux = p->nota2[i]; p->nota2[i] = p->nota2[j]; p->nota2[j] = aux; aux = p->somamedia[i]; p->somamedia[i] = p->somamedia[j]; p->somamedia[j] = aux; } } } }
  2. Lastman

    (Resolvido) Exercicio

    Agora saquei o porque da nota estar saindo assim. Vou tentar arranja uma outra maneira. Voce deu a ideia de criar uma estrutura para um aluno ne, eu sou novato em C ai fico meio perdido por isso não implementei a ideia. Brigadão pela atenção hein :D
  3. Lastman

    (Resolvido) Exercicio

    O que eu quero é isso mesmo. Segue o codigo completo #include<stdio.h> typedef struct Aluno { int matricula[5]; float nota1[5]; float nota2[5]; float somamedia[5]; }Aluno; void lerAluno (Aluno *p); void ordena (Aluno *v); void imprimi (Aluno *b); int main() { Aluno a; lerAluno(&a); ordena(&a); imprimi(&a); return 0; } void lerAluno (Aluno *p) { int i; int j; for(i=0;i<5;i++) { printf("Matricula: "); scanf("%d",&(p->matricula[i])); for (j=0; j<i; j++) { if(p->matricula[i]==p->matricula[j]) { printf("\n ERRO - MATRICULA já CONSTA NO SISTEMA!\n\n"); printf("Nova Matricula: "); scanf("%d",&(p->matricula[i])); j--; } } printf("Nota1: "); scanf("%f",&(p->nota1[i])); printf("Nota2: "); scanf("%f",&(p->nota2[i])); printf("\n"); p->somamedia[i] = p->nota1[i] + p->nota2[i]; } } void ordena( Aluno *v ) { int i ,j,aux; for(i=0; i < 5; i++) { for(j=i; j < 5; j++) { if (v->matricula[i] >= v->matricula[j]) { aux = v->matricula[i]; v->matricula[i] = v->matricula[j]; v->matricula[j] = aux; } } } } void imprimi(Aluno *b) { int i; for(i=0;i<5;i++) { printf("\n-------------------------------------------------------------\n"); printf("Matricula: %d\n",b->matricula[i]); //imprimi a matricula. printf("Nota1: %1.2f\n",b->nota1[i]); //imprimi a nota1. printf("Nota2: %1.2f\n",b->nota2[i]); //imprimi a nota2. printf("Media do Aluno: %1.2f\n",b->somamedia[i]/2); if(b->somamedia[i]/2 < 6.0) printf("Reprovado\n\n"); else printf("Aprovado\n\n"); } }
  4. Lastman

    (Resolvido) Exercicio

    Mas desse modo você digita uma matricula e o resto as notas, eu queria digitar uma matricula depois 2 notas, caso a matricula seja igual digitava uma nova, checava a nova e depois 2 notas. Olha essa solução eu consegui fazer com que o programa não deixe o usuario digitar uma matricula igual. Mas a ordem das notas não estao saindo de acordo com o numero da matricula. Tu consegue me falar alguma solução para isso. Obrigado void lerAluno (Aluno *p) { int i; int j; for(i=0;i<5;i++) { printf("Matricula: "); scanf("%d",&(p->matricula[i])); for (j=0; j<i; j++) { if(p->matricula[i]==p->matricula[j]) { printf("\n ERRO - MATRICULA já CONSTA NO SISTEMA!\n\n"); printf("Nova Matricula: "); scanf("%d",&(p->matricula[i])); j--; } } printf("Nota1: "); scanf("%f",&(p->nota1[i])); printf("Nota2: "); scanf("%f",&(p->nota2[i])); printf("\n"); p->somamedia[i] = p->nota1[i] + p->nota2[i]; } }
  5. Lastman

    (Resolvido) Exercicio

    Tentei implementar mas não consegui, o programa da o erro quando digito uma matricula igual mas na nova matricula ele aceita. void lerAluno (Aluno *p) { int i; int j; int matriculaValida = 0; while( !matriculaValida ) { for(i=0;i<5;i++) { printf( "Digite uma nova matricula: " ); scanf( "%d" , &(p->matricula[i]) ); matriculaValida = 1; for(j=0; j<i; j++) { if(p->matricula[i]==p->matricula[j]) { printf("\n ERRO - MATRICULA já CONSTA NO SISTEMA!\n\n"); matriculaValida = 0; } } printf("Nota1: "); scanf("%f",&(p->nota1[i])); printf("Nota2: "); scanf("%f",&(p->nota2[i])); printf("\n"); p->somamedia[i] = p->nota1[i] + p->nota2[i]; } } }
  6. Lastman

    (Resolvido) Exercicio

    Boa noite! Olha a descrição que eu fiz para o problema "Através do uso de ponteiros escreva um programa que receba como entrada a matricula, a primeira e a segunda nota de cinco alunos de certa turma, e imprima na tela os dados recebidos e a média de cada aluno. Condições de funcionamento do programa: O número da matrícula terá que sair ordenado. Não podem existir duas matrículas iguais cadastradas no sistema. Caso a média < 6, imprima “Reprovado”, senão imprima “Aprovado”." O código funciona mas ele está aceitando digitar duas matriculas iguais. Isso que eu queria uma solução. Obrigado
  7. Lastman

    (Resolvido) Exercicio

    p4tOX esse exercicio é tipo um trabalho, o professor falou que agente tinha q inventar qualquer programa usando ponteiros, lendo uma apostila comecei a criar esse mas aí comeceu a surgir novas ideias q não estou conseguindo implementar.
  8. Traveii na parte da leitura das matriculas, preciso fazer com que o usuario não consiga digitar 2 matriculas iguais. Tenho outro duvida, para fazer n cadastros eu precisaria usar malloc ou teria outra solução? Agradeço pela ajuda. #include<stdio.h> typedef struct Aluno { int matricula[5]; float nota1[5]; float nota2[5]; float somamedia[5]; }Aluno; void lerAluno (Aluno *p); void ordena (Aluno *v); void imprimi (Aluno *b); int main() { Aluno a; lerAluno(&a); ordena(&a); imprimi(&a); return 0; } void lerAluno (Aluno *p) { int i; int j; for(i=0;i<5;i++) { printf("Matricula: "); scanf("%d",&(p->matricula[i])); for (j=0; j<i; j++) { if(p->matricula[i] == p->matricula[j]) { printf("\n ERRO - MATRICULA já CONSTA NO SISTEMA!\n\n"); printf("Nova Matricula: "); scanf("%d",&(p->matricula[i])); i--; } } printf("Nota1: "); scanf("%f",&(p->nota1[i])); printf("Nota2: "); scanf("%f",&(p->nota2[i])); printf("\n"); p->somamedia[i] = p->nota1[i] + p->nota2[i]; } } void ordena( Aluno *v ) { int i ,j,aux; for(i=0; i < 5; i++) { for(j=i; j < 5; j++) { if (v->matricula[i] >= v->matricula[j]) { aux = v->matricula[i]; v->matricula[i] = v->matricula[j]; v->matricula[j] = aux; } } } } void imprimi(Aluno *b) { int i; for(i=0;i<5;i++) { printf("\n-------------------------------------------------------------\n"); printf("Matricula: %d\n",b->matricula[i]); //imprimi a matricula. printf("Nota1: %1.2f\n",b->nota1[i]); //imprimi a nota1. printf("Nota2: %1.2f\n",b->nota2[i]); //imprimi a nota2. printf("Media do Aluno: %1.2f\n",b->somamedia[i]/2); if(b->somamedia[i]/2 < 6.0) printf("Reprovado\n\n"); else printf("Aprovado\n\n"); } }
×
×
  • Criar Novo...