Ir ao conteúdo
  • Cadastre-se
vitao1020

C++ Auxilio com código em C

Posts recomendados

Estou com um pequeno problema, criei esse código para simular uma eleição. Quero colocar para aparecer o nome dos candidatos que eu registar em candidato A, B e C mas não consigo fazer isso, o que preciso fazer?

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

struct tipo_novo{
	int Votoc;
	char nome[10];
	int qnat;
};


int cadastro(tipo_novo Voto[], int aux)
{
 printf("Informe o numero do candidato: ");
	scanf("%d",&Voto[aux].Votoc);
	  fflush(stdin);
 printf("Informe o nome do candidato: ");
    scanf("%s",&Voto[aux].nome);
      fflush(stdin);
}


int Pesquisa(tipo_novo Voto[], int aux)
{

	int i = 0;
	int pesq;
	
	printf("\nEntre com o codigo\n");
	  scanf("%d", &pesq);
     	fflush(stdin);
	system("cls");

	while ( i <= aux )
	{
		if (Voto[i].Votoc == pesq)
		{

			
			printf("\nCodigo: %d \nNome: %s\n\n", Voto[i].Votoc, Voto[i].nome);

			;


		}

		i++;

	}

	

}

main(){
setlocale(LC_ALL, "Portuguese");	
tipo_novo Voto[100];
int aux = 0;
	
	
	int  ContA = 0,  ContB = 0,  ContC = 0,  ContBr = 0,  ContN = 0,  Votoc = 0,  ContVoto = 0, opc;

	
	while (opc != 3){
	printf("==================================");
	printf("\n\n Escolha uma das opções:  \n\n");
	printf("================================== \n\n");
	printf("1)Cadastrar candidato  \n");
	printf("2)Pesquisar candidato  \n");
	printf("3)Fim  \n\n");
	scanf("%d",  &opc);
	if  (opc ==1)
	{
	 cadastro(Voto, aux);
	 aux++;
	 
 	}
	if(opc ==2)
	Pesquisa(Voto, aux);

}
	
	
	
	while  (Votoc  !=  6)  {
	system("cls");
	   printf("Escolha  o  candidato para votar:  \n\n");
	   printf("1 - Voto  para o candidato A \n\n");
	   printf("2 - Voto  para o candidato B \n\n");
	   printf("3 - Voto  para o candidato C \n\n");
       printf("4 - Voto  em  Branco  \n\n");
	   printf("5 - Voto  Nulo  \n\n");
	   printf("6 - Fim  \n\n");
	   printf("Voto  -->  ");
	   printf("");
	     scanf("%d",  &Votoc);
	fflush(stdin);
	
	switch  (Votoc)
	{
	case  1: 
	ContA++; break;
	case  2:  ContB++; break;
	case  3:  ContC++; break;
	case  4:  ContBr++; break;
	case  5:  ContN++; break;}
	ContVoto++;
}    
    printf("======== Apuração de votos ========= \n");  
    printf("Candidato  A  =  %d  Votos  \n",  ContA);
	printf("Candidato  B  =  %d  Votos  \n",  ContB);
    printf("Candidato  C  =  %d  Votos  \n\n",  ContC);
    printf("Votos em branco = %d \n", ContBr);
    printf("Votos nulos = %d \n", ContN);
    printf("===================================== \n");  
	system("pause");     
	
	 
}     

 

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010  poderia me ajudar?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@vitao1020   em qual parte você que que apareça o nome do candidato ?   lá no final ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010 sim, no printf no final do código, onde eu coloquei "apuração de votos"

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@vitao1020     então você precisa definir quem são os candidatos A B e C , pois do jeito que está não se sabe quem são , pois está cadastrando os candidatos pela variável aux , e aí poderia cadastrar milhares de candidatos , aí para imprimir os votos deles precisaria  pesquisar no vetor de  struct e somar o voto de cada candidato , mas no caso de ter apenas esses três candidatos , então crie uma variável para cada um deles e atribua o nome à essas variáveis , então seu código poderia ser assim  :

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <locale.h>
#include <windows.h>
int letras[8][5] ={{15,16,14, 1,30}, /* letra  S */
                   {14,17,31,17,17}, /* letra  A */
                   {14, 4, 4, 4,14}, /* letra  I */
                   {17,25,21,19,17}, /* letra  N */
                   {30,17,17,17,30}, /* letra  D */
                   {14,17,17,17,14}, /* letra  O */
                   { 0, 0, 0, 0, 0}, /* letra    */
                   { 1, 2, 4, 0,16}, /* letra  ! */
                };
void gotoxy_2(int x, int y){/*imprimir na linha e coluna desejada */
  COORD c;
  c.X = x;
  c.Y = y;
  SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
}
struct tipo_novo {
    int  Votoc   ;
    char nome[10];
    int  qnat    ;
};
int cadastro(struct tipo_novo Voto[], int aux)
{
    printf("Informe o numero do candidato: ");
    fflush(stdin);
    scanf("%d",&Voto[aux].Votoc);
    printf("Informe o nome do candidato: ");
    fflush(stdin);
    scanf("%s",&Voto[aux].nome);
}
int Pesquisa(struct tipo_novo Voto[], int aux)/* precisa colocar struct */
{
    int i = 0;
    int pesq;
    printf("\nEntre com o codigo\n");
    fflush(stdin);
    scanf("%d", &pesq);
    system("cls");
    while ( i <= aux )
    {
        if (Voto[i].Votoc == pesq){
            printf("\nCodigo -: %d\n", Voto[i].Votoc);
            printf("Nome ---: %s\n\n", Voto[i].nome );
        }
        i++;
    }
    printf("\n      Tecle !");
    getch();
}
int main(){
    setlocale(LC_ALL, "Portuguese");
    struct tipo_novo Voto[100];
    char candA[15],candB[15],candC[15] ;
    int  ContA    = 0,  ContB = 0,  ContC = 0,
         ContBr   = 0,  ContN = 0,  Votoc = 0,
         ContVoto = 0,  aux = 0  ,  opc ,x   ;
    while (opc != 3){
        system("cls");
        printf("==================================");
        printf("\n\n Escolha uma das opções:  \n\n");
        printf("================================== \n\n");
        printf("1)Cadastrar candidato  \n");
        printf("2)Pesquisar candidato  \n");
        printf("3)Fim  \n\n");
        scanf("%d",  &opc);
        if  (opc ==1){
            cadastro(Voto, aux);
            aux++;
        }
        else
            if(opc ==2)
                Pesquisa(Voto, aux);
    }
    strcpy(candA,Voto[0].nome);/* o primeiro nome cadastrado */
    strcpy(candB,Voto[1].nome);/* o segundo  nome cadastrado */
    strcpy(candC,Voto[2].nome);/* o terceiro nome cadastrado */
    while(ContVoto  !=  6){
        system("cls");
        printf("Escolha  o  candidato para votar:  \n\n");
        printf("1 - Voto  para o candidato A \n\n");
        printf("2 - Voto  para o candidato B \n\n");
        printf("3 - Voto  para o candidato C \n\n");
        printf("4 - Voto  em  Branco  \n\n");
        printf("5 - Voto  Nulo  \n\n");
        printf("6 - Fim  \n\n");
        printf("Voto  -->  ");
        printf("");
        fflush(stdin);
        scanf("%d",  &Votoc);
        switch(Votoc)
        {
        case  1: ContA++; break;
        case  2: ContB++; break;
        case  3: ContC++; break;
        case  4: ContBr++; break;
        case  5: ContN++; break;
        }
        ContVoto++;
    }
    printf("======== Apuração de votos ========= \n\n"             );
    if(strcmp(Voto[x].nome,"")!= 0                                 );
        printf("Candidato  A  %15s  = %d  Votos  \n"  ,candA, ContA);
    if(strcmp(Voto[x].nome,"")!= 0                                 );
        printf("Candidato  B  %15s  = %d  Votos  \n"  ,candB, ContB);
    if(strcmp(Voto[x].nome,"")!= 0                                 );
        printf("Candidato  C  %15s  = %d  Votos  \n\n",candC, ContC);
    printf("Votos em branco = %d         \n"    , ContBr           );
    printf("Votos nulos     = %d         \n\n"  , ContN            );
    printf("===================================== \n\n"            );
    gotoxy_2(0,40);
    gotoxy_2(0,30);
    system("pause");
    gotoxy_2(0,50);
    gotoxy_2(0,37);
    int w,px,py,s;                            /* variáveis simples                       */
    HANDLE hOut;                              /* controle dos dispositivos do pc         */
    hOut= GetStdHandle(STD_OUTPUT_HANDLE);    /* pega a saída padrão                     */
    CONSOLE_SCREEN_BUFFER_INFO SBInfo;        /* informações sobre a buffer da tela      */
    GetConsoleScreenBufferInfo(hOut, &SBInfo);/* pega a posição do cursor do console     */
    px = SBInfo.dwCursorPosition.X;           /* pX será a posição da coluna do cursor no console */
    py = SBInfo.dwCursorPosition.Y;           /* pY será a posição da linha do cursor no console  */
    int y1=py+1,x1=20,y2=y1,x2=x1,j,i,a,b;    /*y1=linha inicial  y2 para recuperar a linha inicial*/
    for(i=0;i<8;i++){                     /*  sao 8 letras                                    */
        for(j=0;j<5;j++){                 /*o caractere é de 5 linhas                          */
            x1 = x2;
            a=letras[i][j];               /*pega o numero da 1 linha do caractere              */
            for(b=0;b<5;b++){             /*aqui eh um numero de apenas 8 bits                 */
                gotoxy_2(x1,y1);
                if(a % 2 != 0){           /*se bit 0 igual 1                                   */
                    printf("%c",219);     /*coloca espaço invertido senão coloca espaço normal */
                }
                else{
                    printf(" ");          /*senão coloca espaço normal                         */
                }
                a=a/2;                    /*dividindo numero por 2 desloca os bits para direita*/
                x1--;
                Sleep(10);
            }
            y1++;                   /*muda para proxima linha                                  */
            x1=x2;                  /*volta para a coluna inicial                              */
        }                           /*proxima linha                                            */
        x2=x2+6;                    /*avança 6 colunas posicionando para o prox caract         */
        y1=y2;                      /*volta para linha inicial                                 */
    }                               /*imprimiu o primeiro caractere                            */
    printf("\n\n\n");
    return 0;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010 tentei compilar esse código e ainda apareceu a mesma mesma coisa de Candidato A, B e C, e depois quando mostra o resultado da eleição no nome do candidato tá aparecendo o endereço de memória

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@vitao1020 @vitao1020       aqui funciona bem com o codeblocks no windows , qual compilador você está usando  ?  é no Linux ?

 

candidatos.thumb.JPG.6c6677359e99d8e2c0aba27ef12da83d.JPG

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010 eu uso o compilador falcon c++, já ouviu falar? é porque comecei a aprender nele e continuo usando

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@vitao1020      sim , já usei  e é bom também ,   mas e o sistema operacional  ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010 é windows q uso, mais precisamente o 7 professional 64

adicionado 35 minutos depois

@devair1010 Queria que nessa parte eu já pudesse substituir "Candidato A" pelo nome do candidato que eu cadastrar, e outra coisa que percebi que nesse seu código a votação ficou limitada em 6 votos

part 1 programa.png

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!