#include <stdio.h>
#include <string.h>
typedef int identificador;
typedef struct {
identificador matricula;
char nome[ 10 ] ;
int idade;
} aluno;
int i = 0 ;
aluno vAluno[ 100 ] ;
void inserir( ) {
char flag;
do {
printf ( "-----------------------------\n " ) ;
printf ( "Digite a Matrícula: " ) ; scanf ( "%d" , & vAluno
[ i
] .
matricula ) ;
scanf ( "%s" , vAluno
[ i
] .
nome ) ;
scanf ( "%d" , & vAluno
[ i
] .
idade ) ;
printf ( "-----------------------------\n " ) ; printf ( "Deseja Inserir Outro Registro (S/N)? " ) ; i++;
} while ( flag != 'N' ) ;
}
void listar( ) {
int k;
printf ( "------------------------------------------------\n " ) ; printf ( "%-5s %-15s %-15s %-10s\n " , "#" , "MATRICULA" , "NOME" , "IDADE" ) ;
for ( k= 0 ; k< i; k++ ) {
printf ( "%-5d %-15d %-15s %-10d\n " , ( k
+ 1 ) , vAluno
[ k
] .
matricula , vAluno
[ k
] .
nome , vAluno
[ k
] .
idade ) ;
}
printf ( "------------------------------------------------\n " ) ; }
void menu_de_opcoes( ) {
int opcao;
do {
printf ( "\n --------O P Ç Õ E S----------\n " ) ;
printf ( "Selecione uma opção: " ) ;
switch ( opcao) {
case 1 : inserir( ) ; break ;
case 2 : listar( ) ; break ;
case 3 : menu_ordenar( ) ; break ;
}
} while ( opcao != 0 ) ;
}
void menu_ordenar( ) {
int opcao;
do {
printf ( "\n --------Escolha a opcao de ordenacao----------\n " ) ; printf ( "1 - Método da Bolha\n " ) ; printf ( "2 - Ordenação por Seleção\n " ) ; printf ( "3 - Ordenação por Inserção \n " ) ;
printf ( "Selecione uma opção: " ) ;
switch ( opcao) {
case 1 : inserir( ) ; break ;
case 2 : listar( ) ; break ;
case 3 : ordenar( ) ; break ;
}
} while ( opcao != 0 ) ;
}
void bubleSort( aluno* v, int tam) {
int i, j;
for ( i = 1 ; i < tam; i++ ) {
for ( j = 0 ; j < tam- 1 ; j++ ) {
if ( v[ j] .matricula > v[ j+ 1 ] .matricula )
troca( & v[ j] , & v[ j+ 1 ] ) ;
}
}
}
void troca( aluno* n1, aluno* n2) {
aluno aux;
aux = * n1;
* n1 = * n2;
* n2 = aux;
}
int main( int argc, char * argv[ ] ) {
menu_de_opcoes( ) ;
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCnR5cGVkZWYgaW50IGlkZW50aWZpY2Fkb3I7Cgp0eXBlZGVmIHN0cnVjdCB7CglpZGVudGlmaWNhZG9yIG1hdHJpY3VsYTsJCgljaGFyIG5vbWVbMTBdOwoJaW50IGlkYWRlOwkKfSBhbHVubzsKCmludCBpID0gMDsKYWx1bm8gdkFsdW5vWzEwMF07Cgp2b2lkIGluc2VyaXIoKSB7CgogIGNoYXIgZmxhZzsKCQkKCWRvIHsKCgkJcHJpbnRmKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7CgoJCXByaW50ZigiRGlnaXRlIGEgTWF0csOtY3VsYTogIik7CgkJc2NhbmYoIiVkIiwgJnZBbHVub1tpXS5tYXRyaWN1bGEpOwkKCgkJcHJpbnRmKCJEaWdpdGUgbyBub21lOiAiKTsKCQlzY2FuZigiJXMiLCB2QWx1bm9baV0ubm9tZSk7CgoJCXByaW50ZigiRGlnaXRlIGEgaWRhZGU6ICIpOwkKCQlzY2FuZigiJWQiLCAmdkFsdW5vW2ldLmlkYWRlKTsJCgoJCXByaW50ZigiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwoJCXByaW50ZigiRGVzZWphIEluc2VyaXIgT3V0cm8gUmVnaXN0cm8gKFMvTik/ICIpOwogCSAgICBzY2FuZigiICVjIiwgJmZsYWcpOwogCSAgICBpKys7CgoJfSB3aGlsZShmbGFnICE9ICdOJyk7Cgp9Cgp2b2lkIGxpc3RhcigpIHsKCWludCBrOwoJcHJpbnRmKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwoJcHJpbnRmKCIlLTVzICUtMTVzICUtMTVzICUtMTBzXG4iLCAiIyIsICJNQVRSSUNVTEEiLCAiTk9NRSIsICJJREFERSIpOwoKCWZvcihrPTA7IGs8aTsgaysrKSB7CgkJcHJpbnRmKCIlLTVkICUtMTVkICUtMTVzICUtMTBkXG4iLCAoaysxKSwgdkFsdW5vW2tdLm1hdHJpY3VsYSwgdkFsdW5vW2tdLm5vbWUsIHZBbHVub1trXS5pZGFkZSk7CgkJCgkJCgl9CglwcmludGYoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7CglnZXRjaGFyKCk7CglnZXRjaGFyKCk7Cn0KCnZvaWQgbWVudV9kZV9vcGNvZXMoKSB7CgoJaW50IG9wY2FvOwoKCWRvIHsKCgkJcHJpbnRmKCJcbi0tLS0tLS0tTyBQIMOHIMOVIEUgUy0tLS0tLS0tLS1cbiIpOwoJCXByaW50ZigiMSAtIEluc2VyaXJcbiIpOwoJCXByaW50ZigiMiAtIExpc3RhclxuIik7CgkJcHJpbnRmKCIzIC0gT3JkZW5hclxuIik7CgkJcHJpbnRmKCIwIC0gU2FpclxuIik7CgoJCXByaW50ZigiU2VsZWNpb25lIHVtYSBvcMOnw6NvOiAiKTsKCSAJc2NhbmYoIiAlZCIsICZvcGNhbyk7CgoJIAlzd2l0Y2gob3BjYW8pIHsKCSAJCWNhc2UgMTogaW5zZXJpcigpOyBicmVhazsJCgkgCQljYXNlIDI6IGxpc3RhcigpOyBicmVhazsKCQkJY2FzZSAzOiBtZW51X29yZGVuYXIoKTsgYnJlYWs7CQoKCSAJfQoKCSAJCgl9IHdoaWxlKG9wY2FvICE9IDApOwoKfQoKdm9pZCBtZW51X29yZGVuYXIoKSB7CgoJaW50IG9wY2FvOwoKCWRvIHsKCgkJcHJpbnRmKCJcbi0tLS0tLS0tRXNjb2xoYSBhIG9wY2FvIGRlIG9yZGVuYWNhby0tLS0tLS0tLS1cbiIpOwoJCXByaW50ZigiMSAtIE3DqXRvZG8gZGEgQm9saGFcbiIpOwoJCXByaW50ZigiMiAtIE9yZGVuYcOnw6NvIHBvciBTZWxlw6fDo29cbiIpOwoJCXByaW50ZigiMyAtIE9yZGVuYcOnw6NvIHBvciBJbnNlcsOnw6NvIFxuIik7CgkJcHJpbnRmKCIwIC0gU2FpclxuIik7CgoJCXByaW50ZigiU2VsZWNpb25lIHVtYSBvcMOnw6NvOiAiKTsKCSAJc2NhbmYoIiAlZCIsICZvcGNhbyk7CgoJIAlzd2l0Y2gob3BjYW8pIHsKCSAJCWNhc2UgMTogaW5zZXJpcigpOyBicmVhazsJCgkgCQljYXNlIDI6IGxpc3RhcigpOyBicmVhazsKCQkJY2FzZSAzOiBvcmRlbmFyKCk7IGJyZWFrOwkKCgkgCX0KCgkgCQoJfSB3aGlsZShvcGNhbyAhPSAwKTsKCn0KCnZvaWQgYnVibGVTb3J0KCBhbHVubyogdiwgaW50IHRhbSkgewogICAgaW50IGksIGo7CgogICAgZm9yIChpID0gMTsgaSA8IHRhbTsgaSsrKSB7CgoJICAgICAgZm9yIChqID0gMDsgaiA8IHRhbS0xOyBqKyspIHsKCgkgICAgICAgICBpZiAodltqXS5tYXRyaWN1bGEgPiB2W2orMV0ubWF0cmljdWxhKSAKCSAgICAgICAgIAl0cm9jYSgmdltqXSwgJnZbaisxXSk7CgoJICAgICAgfQogICAgIH0KfQoKdm9pZCB0cm9jYShhbHVubyogbjEsIGFsdW5vKiBuMikgewoJYWx1bm8gYXV4OwoKCWF1eCA9ICpuMTsKCSpuMSA9ICpuMjsKCSpuMiA9IGF1eDsgCn0KCmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsgIAoKCW1lbnVfZGVfb3Bjb2VzKCk7CgogICByZXR1cm4gMDsKfQ==
compilation info
prog.c: In function 'menu_de_opcoes':
prog.c:74:12: warning: implicit declaration of function 'menu_ordenar' [-Wimplicit-function-declaration]
case 3: menu_ordenar(); break;
^
prog.c: At top level:
prog.c:83:6: warning: conflicting types for 'menu_ordenar'
void menu_ordenar() {
^
prog.c:74:12: note: previous implicit declaration of 'menu_ordenar' was here
case 3: menu_ordenar(); break;
^
prog.c: In function 'menu_ordenar':
prog.c:101:12: warning: implicit declaration of function 'ordenar' [-Wimplicit-function-declaration]
case 3: ordenar(); break;
^
prog.c: In function 'bubleSort':
prog.c:118:12: warning: implicit declaration of function 'troca' [-Wimplicit-function-declaration]
troca(&v[j], &v[j+1]);
^
prog.c: At top level:
prog.c:124:6: warning: conflicting types for 'troca'
void troca(aluno* n1, aluno* n2) {
^
prog.c:118:12: note: previous implicit declaration of 'troca' was here
troca(&v[j], &v[j+1]);
^
/home/UY5SmL/cct5XTtS.o: In function `menu_ordenar':
prog.c:(.text+0x221): undefined reference to `ordenar'
collect2: error: ld returned 1 exit status
stdout