GustavoBDR
(usa Ubuntu)
Enviado em 16/04/2016 - 12:18h
Olá galera!!
Preciso ordenar um vertor de modo crescente. Fiz da seguinte forma:
for (i = 0; i < 10; i++) {
if (v_codigo[i] > v_codigo[i+1]) {
cod_aux = v_codigo[i];
v_codigo[i] = v_codigo[i+1];
v_codigo[i+1] = cod_aux;
cod_aux = 0;
}
for (i = 0; i < 10; i++) {
printf("Codigos: %d\n",v_codigo[i]);
}
}
Porém está dando errado, ele apenas imprime os valores do mesmo modo que foi lido pelo scanf.
Desde já obrigado!!!!! (Ele perde a identeção ao publicar o post, desculpem.)
Codigo completo:
#include <stdio.h>
int main(int argc, const char *argv[])
{
int v_opcao,j=0,i=0,c=0,cod_aux=0;
int v_codigo[10], v_qtd[10];
float v_preco[10];
char v_opcao2;
for (i = 0; i < 10; i++) {
v_codigo[i] = 0;
v_qtd[i] = 0;
v_preco[i] = 0.00;
}
i=0;
void fnc_inclui_produto()
{
printf("Digite o codigo que deseja incluir:\n");
scanf("%d",&v_codigo[c]);
printf("\nO numero digitado foi: %d\n",v_codigo[c]);
c = c+1;
}
void fnc_relatorio()
{
printf("Opcoes de relatorio:\n\n");
printf("a) Relatorio completo (cod)\n");
printf("b) Relatorio categoria (preco)\n");
printf("c) Relatorio estoque por categoria\n");
printf("d) Relatorio estoque baixo\n");
printf("d) Relatorio surpresa\n");
scanf(" %c",&v_opcao2);
system("clear");
switch (v_opcao2)
{
case 'a':
/*
for (i = 0; i < 10; i++) {
printf("Codigo: %d\n",v_codigo[i]);
}*/
for (i = 0; i < 10; i++) {
if (v_codigo[i] > v_codigo[i+1]) {
cod_aux = v_codigo[i];
v_codigo[i] = v_codigo[i+1];
v_codigo[i+1] = cod_aux;
cod_aux = 0;
}
for (i = 0; i < 10; i++) {
printf("Codigos: %d\n",v_codigo[i]);
}
}
break;
}
}
while (v_opcao != 6)
{
puts("Menu");
printf("Escolha a opcao desejada:\n\n");
printf("1)Incluir livro\n");
printf("2)Excluir livro\n");
printf("3)Alterar preco de um livro\n");
printf("4)Alterar estoque de um livro\n");
printf("5)Relatorios\n");
printf("6)Sair\n");
scanf("%d",&v_opcao);
system("clear");
switch (v_opcao)
{
case 1:
fnc_inclui_produto();
break;
case 5:
fnc_relatorio();
break;
}
}
return 0;
}