Ir ao conteúdo
  • Cadastre-se

Como exibir do maior para o Menor?


DeFaC3r

Posts recomendados

Galera, é o seguinte... Estou estudando C e me deparo com um seguinte trabalhinho...:

Tenho que fazer com que o programa exiba no final o número de votos errados, nulos, brancos e os nomes dos candidatos na ordem ascendente.

Só que já testei algumas formas e não consegui...

#include<stdio.h>

#include<stdlib.h>

#include<stdio.h>

#include<conio.h>

#include<malloc.h>

int mariazinha,aninha,sandrinha,mariela,enilda,branco,nulo,errado,opc;

main()

{ int opc;

do

{ system("cls");

printf ("1-Mariazinha da Silva\n");

printf ("2-Aninha de Mendonca\n");

printf ("3-Sandrinha Manoela\n");

printf ("4-Mariela Peçanha\n");

printf ("5-Enilda das Rosas\n");

printf ("6-Branco\n");

printf ("7-Nulo\n");

printf ("8-Sair\n");

printf ("Voto\n");

printf("\n#### opcao ##### ");

scanf("%d",&opc);

system("cls");

switch(opc)

{

case 1: printf("\nVc votou na Marizinha \n");{

mariazinha++;

break;}

case 2: printf("\nVc votou na Aninha\n");{

aninha++;

break;}

case 3: printf("\nVc votou na Sandrinha\n");{

sandrinha++;

break;}

case 4: printf("\nVc votou na Mariela\n");{

mariela++;

break;}

case 5: printf("\nVc votou na Enilda\n");{

enilda++;

break;}

case 6: printf("\nVc votou em branco\n");{

branco++;

break;}

case 7: printf("\nVc votou Nulo\n");{

nulo++;

break;}

case 8: printf("\nObrigado por participar! ;) \n\n");{

printf("\nMarizinha: %d",mariazinha) ;

printf("\nAninha: %d",aninha) ;

printf("\nSandrinha: %d",sandrinha) ;

printf("\nMariela: %d",mariela) ;

printf("\nEnilda: %d",enilda) ;

printf("\nVotos Errados: %d",errado);

printf("\nVotos Brancos: %d",branco);

printf("\nVotos Nulos: %d\n",nulo);

system("pause");

exit(1); }

default: printf("\nopcao invalida\n");

errado++;}

system("pause");

} while(opc!=8);

}

Editei o tópico p/ tentar explicar melhor...

como eu coloco para exibir em ordem do "maior para o menor" de acordo com o candidato quem tem mais votos.?

Link para o comentário
Compartilhar em outros sites

Você pode usar o Método Bolha para ordenar, mas só o use em programas pequenos, pois ele compara variável por variável.

Ele basicamente é assim:

[...]

for(contador1 = 0; contador1 <= /*Número de variáveis -1*/; contador1++)

{

for(contador2 = contador1+1; contador2 <= /*Número de variáveis*/; contador2++)

{

if(matriz[contador1] > matriz[contador2])

{//pra comparar string, usa-se strcmp(string1, string2) > 0

x = matriz[contador1];

matriz[contador1] = matriz[contador2];

matriz[contador2] = X;

}

}

}

Link para o comentário
Compartilhar em outros sites

Bom, to me enrolando no IF...

porque são 8 candidatos(contando com o errado, que se o usuário digitar por exemplo, 15,14,18 , enfim, qualquer número que não esteja no menu, ele terá que ser exibido no final), e devido a essa quantidade eu não estou conseguindo assimilar a lógica com o meu raciocíneo...

O código ficou assim...

#include<stdio.h>

#include<stdlib.h>

#include<stdio.h>

#include<conio.h>

#include<malloc.h>

int mariazinha,aninha,sandrinha,mariela,enilda,branco, nulo,errado,opc,x;

main()

{ int opc;

do

{ system("cls");

printf ("1-Mariazinha da Silva\n");

printf ("2-Aninha de Mendonca\n");

printf ("3-Sandrinha Manoela\n");

printf ("4-Mariela Peçanha\n");

printf ("5-Enilda das Rosas\n");

printf ("6-Branco\n");

printf ("7-Nulo\n");

printf ("8-Sair\n");

printf ("Voto\n");

printf("\n#### opcao ##### ");

scanf("%d",&opc);

system("cls");

switch(opc)

{

case 1: printf("\nVc votou na Marizinha \n");{

mariazinha++;

break;}

case 2: printf("\nVc votou na Aninha\n");{

aninha++;

break;}

case 3: printf("\nVc votou na Sandrinha\n");{

sandrinha++;

break;}

case 4: printf("\nVc votou na Mariela\n");{

mariela++;

break;}

case 5: printf("\nVc votou na Enilda\n");{

enilda++;

break;}

case 6: printf("\nVc votou em branco\n");{

branco++;

break;}

case 7: printf("\nVc votou Nulo\n");{

nulo++;

break;}

case 8: printf("\nObrigado por participar! \n\n");{

system("pause");

exit(1); }

default: printf("\nopcao invalida\n");

errado++;}

system("pause");

}

while(opc!=8);

for(mariazinha=0; mariazinha<=8 -1; mariazinha++)

{

for(aninha=mariazinha+1; aninha<=8 ;aninha++)

{

for(sandrinha=aninha+1; sandrinha<=8 ;sandrinha++)

{

for(mariela=sandrinha+1; mariela<=8 ;mariela++)

{

for(enilda=mariela+1; enilda<=8 ;enilda++)

{

for(branco=enilda+1; branco<=8 ;branco++)

{

for(nulo=branco+1; nulo<=8 ;nulo++)

{

for(errado=nulo+1; errado<=8 ;errado++)

{

if(mariazinha>aninha)

{

strcmp(mariazinha,aninha) > 0 ;

x=mariazinha ;

mariazinha=aninha ;

aninha=x ;

}

}

}

}

}

}

}

}

}

}

Eu deixei as variáveis com os "nomes grandes", porque fica mais fácil pra mim entender, mas nada que depois que estiver pronto seja modificado... O que eu quero no momento é aprender.

No aguardo. =)

Link para o comentário
Compartilhar em outros sites

Ops! Deixei de notar algo >_<

Pensei de em vez de criar várias variáveis(Mariazinha, Aninha...), criar a matriz pra encaixar no bubble sort. Por exemplo, o 1 do vetor seria a Mariazinha o 2 a Aninha e assim por diante...

Obs.: o strcmp é pra comparar a string... Ex.: Se você quisesse exibir os nome da votação em ordem alfabética...

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!