#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct concurso
{
char nome[ 30 ] ;
int matri;
int prov1;
int prov2;
int prov3;
} con;
typedef struct clasificados
{
char n[ 30 ] ;
int m;
int pont;
} cla;
void ordena( con* co, int tam)
{
cla
* conc
= ( cla
* ) malloc ( sizeof ( cla
) * tam
) ; cla aux;
int i, j= 0 ;
for ( i= 0 ; i< tam; i++ )
{
if ( ( co[ i] .prov1 > 40 ) && ( co[ i] .prov2 > 40 ) && ( co[ i] .prov3 > 40 ) && ( co[ i] .prov1 + co[ i] .prov2 + co[ i] .prov3 >= 150 ) )
{
conc[ j] .pont = co[ i] .prov1 + co[ i] .prov2 + co[ i] .prov3 ;
conc[ j] .m = co[ i] .matri ;
j++;
}
}
//O PROBLEMA ESTA DAQUI PARA BAIXO, AQUI QUERO ORDENAR OS DADOS DA STRUCT CLASSIFCADOS, ATE QUE ORDENA, MAIS O PRIMEIRO ELEMENTO SAI COMO LIXO DE MEMORIA
for ( i= 0 ; i< j; i++ )
{
if ( conc[ i] .pont < conc[ i+ 1 ] .pont )
{
aux.pont = conc[ i+ 1 ] .pont ;
conc[ i+ 1 ] .pont = conc[ i] .pont ;
conc[ i] .pont = aux.pont ;
strcpy ( conc
[ i
+ 1 ] .
n , conc
[ i
] .
n ) ;
aux.m = conc[ i+ 1 ] .m ;
conc[ i+ 1 ] .m = conc[ i] .m ;
conc[ i] .m = aux.m ;
i=- 1 ;
}
}
printf ( "\n \t \t ------Classificados-------\n " ) ; printf ( "\n POSICAO\t \t MATRICULA\t CANDIDATO\t NOTA\n " ) ; for ( i= 0 ; i< j; i++ )
{
printf ( "%d\t \t %d\t \t %s\t \t %3d\n " , i
+ 1 , conc
[ i
] .
m , conc
[ i
] .
n , conc
[ i
] .
pont ) ; }
}
int main( )
{
int i, j;
int tam;
printf ( "Digite o numero de candidatos: " ) ; con
* c
= ( con
* ) malloc ( sizeof ( con
) * tam
) ;
for ( i= 0 ; i< tam; i++ )
{
printf ( "Digite o nome do candidato %d: " , i
+ 1 ) ; scanf ( " %[^\n ]s" , c
[ i
] .
nome ) ;
printf ( "Digite a matricula do candidato %s: " , c
[ i
] .
nome ) ;
printf ( "Digite a nota 1 do candidato %s: " , c
[ i
] .
nome ) ;
printf ( "Digite a nota 2 do candidato %s: " , c
[ i
] .
nome ) ;
printf ( "Digite a nota 3 do candidato %s: " , c
[ i
] .
nome ) ; }
ordena( c, tam) ;
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKdHlwZWRlZiBzdHJ1Y3QgY29uY3Vyc28KewogICAgY2hhciBub21lWzMwXTsKICAgIGludCBtYXRyaTsKICAgIGludCBwcm92MTsKICAgIGludCBwcm92MjsKICAgIGludCBwcm92MzsKfSBjb247Cgp0eXBlZGVmIHN0cnVjdCBjbGFzaWZpY2Fkb3MKewogICAgY2hhciBuWzMwXTsKICAgIGludCBtOwogICAgaW50IHBvbnQ7Cn0gY2xhOwoKdm9pZCBvcmRlbmEoY29uKiBjbyxpbnQgdGFtKQp7CiAgICBjbGEgKmNvbmM9KGNsYSopbWFsbG9jKHNpemVvZihjbGEpKnRhbSk7CiAgICBjbGEgYXV4OwogICAgaW50IGksaj0wOwogICAgZm9yKGk9MDsgaTx0YW07IGkrKykKICAgIHsKICAgICAgICBpZigoY29baV0ucHJvdjE+NDApJiYoY29baV0ucHJvdjI+NDApJiYoY29baV0ucHJvdjM+NDApJiYoY29baV0ucHJvdjErY29baV0ucHJvdjIrY29baV0ucHJvdjM+PTE1MCkpCiAgICAgICAgewogICAgICAgICAgICBjb25jW2pdLnBvbnQ9Y29baV0ucHJvdjErY29baV0ucHJvdjIrY29baV0ucHJvdjM7CiAgICAgICAgICAgIHN0cmNweShjb25jW2pdLm4sY29baV0ubm9tZSk7CiAgICAgICAgICAgIGNvbmNbal0ubT1jb1tpXS5tYXRyaTsKICAgICAgICAgICAgaisrOwogICAgICAgIH0KICAgIH0KLy9PIFBST0JMRU1BIEVTVEEgREFRVUkgUEFSQSBCQUlYTywgQVFVSSBRVUVSTyBPUkRFTkFSIE9TIERBRE9TIERBIFNUUlVDVCBDTEFTU0lGQ0FET1MsIEFURSBRVUUgT1JERU5BLCBNQUlTIE8gUFJJTUVJUk8gRUxFTUVOVE8gU0FJIENPTU8gTElYTyBERSBNRU1PUklBCiAgICBmb3IoIGk9MDsgaTxqOyBpKysgKQogICAgewogICAgICAgIGlmKCBjb25jW2ldLnBvbnQgPCBjb25jW2krMV0ucG9udCApCiAgICAgICAgewogICAgICAgICAgICBhdXgucG9udCA9IGNvbmNbaSsxXS5wb250OwogICAgICAgICAgICBjb25jW2krMV0ucG9udCA9IGNvbmNbaV0ucG9udDsKICAgICAgICAgICAgY29uY1tpXS5wb250ID0gYXV4LnBvbnQ7CgogICAgICAgICAgICBzdHJjcHkoYXV4Lm4sY29uY1tpKzFdLm4pOwogICAgICAgICAgICBzdHJjcHkoY29uY1tpKzFdLm4sY29uY1tpXS5uKTsKICAgICAgICAgICAgc3RyY3B5KGNvbmNbaV0ubiwgYXV4Lm4pOwoKICAgICAgICAgICAgYXV4Lm0gPSBjb25jW2krMV0ubTsKICAgICAgICAgICAgY29uY1tpKzFdLm0gPSBjb25jW2ldLm07CiAgICAgICAgICAgIGNvbmNbaV0ubSA9IGF1eC5tOwogICAgICAgICAgICBpPS0xOwogICAgICAgIH0KICAgIH0KCiAgICBwcmludGYoIlxuXHRcdC0tLS0tLUNsYXNzaWZpY2Fkb3MtLS0tLS0tXG4iKTsKICAgIHByaW50ZigiXG5QT1NJQ0FPXHRcdE1BVFJJQ1VMQVx0Q0FORElEQVRPXHROT1RBXG4iKTsKICAgIGZvciggaT0wOyBpPGo7IGkrKyApCiAgICB7CiAgICAgICAgcHJpbnRmKCIlZFx0XHQlZFx0XHQlc1x0XHQlM2RcbiIsaSsxLGNvbmNbaV0ubSxjb25jW2ldLm4sY29uY1tpXS5wb250KTsKICAgIH0KICAgIGZyZWUoY29uYyk7Cn0KCmludCBtYWluKCkKewogICAgaW50IGksajsKICAgIGludCB0YW07CiAgICBwcmludGYoIkRpZ2l0ZSBvIG51bWVybyBkZSBjYW5kaWRhdG9zOiAiKTsKICAgIHNjYW5mKCIlZCIsJnRhbSk7CiAgICBjb24gKmM9KGNvbiopbWFsbG9jKHNpemVvZihjb24pKnRhbSk7CgogICAgZm9yKGk9MDsgaTx0YW07IGkrKykKICAgIHsKICAgICAgICBwcmludGYoIkRpZ2l0ZSBvIG5vbWUgZG8gY2FuZGlkYXRvICVkOiAiLGkrMSk7CiAgICAgICAgc2NhbmYoIiAlW15cbl1zIixjW2ldLm5vbWUpOwoKICAgICAgICBwcmludGYoIkRpZ2l0ZSBhIG1hdHJpY3VsYSBkbyBjYW5kaWRhdG8gJXM6ICIsY1tpXS5ub21lKTsKICAgICAgICBzY2FuZigiJWQiLCZjW2ldLm1hdHJpKTsKCiAgICAgICAgcHJpbnRmKCJEaWdpdGUgYSBub3RhIDEgZG8gY2FuZGlkYXRvICVzOiAiLGNbaV0ubm9tZSk7CiAgICAgICAgc2NhbmYoIiVkIiwmY1tpXS5wcm92MSk7CgogICAgICAgIHByaW50ZigiRGlnaXRlIGEgbm90YSAyIGRvIGNhbmRpZGF0byAlczogIixjW2ldLm5vbWUpOwogICAgICAgIHNjYW5mKCIlZCIsJmNbaV0ucHJvdjIpOwoKICAgICAgICBwcmludGYoIkRpZ2l0ZSBhIG5vdGEgMyBkbyBjYW5kaWRhdG8gJXM6ICIsY1tpXS5ub21lKTsKICAgICAgICBzY2FuZigiJWQiLCZjW2ldLnByb3YzKTsKICAgIH0KICAgIG9yZGVuYShjLHRhbSk7CgogICAgZnJlZShjKTsKCiAgICByZXR1cm4gMDsKfQo=