Ir ao conteúdo
  • Cadastre-se

C++ Auxilio com código em C


vitao1020

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
Link para o comentário
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;
}

 

Link para o comentário
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
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 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...