Ir ao conteúdo
  • Cadastre-se
melo2d

C++ converte de C++ para C

Recommended Posts

#include <stdio.h>
#include <vector>

struct crianca{
       char nome[30];
       int valor;
       bool marcado;
       struct crianca *ant;
       struct crianca *prox;
};

int main(){
    int n, i, j, n1;
    int marcados, comp, comp1;
    
    while(scanf("%d", &n) && n){          
            struct crianca array[n];
            for(i = 0; i < n; i++){
                  scanf(" %s %d", &array.nome, &array.valor);
                  if(i != 0){
                       array.ant = &array[i-1];
                       array[i-1].prox = &array;
                  }
            }
            array[n-1].prox = &array[0];
            array[0].ant = &array[n-1];
            
            std::vector<struct crianca> lista (array,array+n);
            std::vector<struct crianca>::iterator it;
            
            marcados = 0;
            comp = lista[0].valor;
            n1 = n - 1;
            while(marcados != n1 && n >= 2){
            printf("\nInterecao:\n\n");
            for (i=0; i < lista.size(); i++){
                   printf("\n%s:\n", lista.nome);
                   printf("valor = %d\n", lista.valor);
                   printf("proximo = %s %d\n", lista.prox->nome, lista.prox->valor);
                   printf("anterior = %s %d\n", lista.ant->nome, lista.ant->valor);
            }
            if(comp % 2 != 0){
                  printf("aqui\n");  
                  comp = comp%n;
                  if(comp == 0){
                     it = lista.end();
                     it->prox = &lista[0];
                     lista[comp+1].ant = &lista[n-1];
                  }else{
                     lista[comp-1].prox = &lista[comp+1];
                     lista[comp+1].ant = &lista[comp-1];
                  }
                  comp1 = lista[comp].valor;
                  lista.erase(lista.begin()+comp);
                  marcados++;
                  n--;
                  comp = comp1;
            }else{
                  comp = comp%n;
                  if(comp == 0){
                     it = lista.end();
                     it->prox = &lista[0];
                     lista[comp+1].ant = &lista[n-1];
                  }else{
                     lista[n-comp-1].prox = &lista[n-comp+1];
                     lista[n-comp+1].ant = &lista[n-comp-1];
                  }
                  comp1 = lista[n-comp].valor;
                  lista.erase(lista.begin()+(n-comp));
                  marcados++;
                  n--;
                  comp = comp1;
            }
            }
            
            printf("Vencedor(a): %s\n", lista[0].nome);
    }
    return 0;
}
            
 

adicionado 0 minutos depois

Alguem pode me ajudar por favor ?

converte esse codigo em C#

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@melo2d    você quer traduzir esse código para o c# ou como está no titulo ?       se for para c#  você precisa colocar seu código dentro de uma class principal  e dentro dessa classe coloque a função main  e as outras funções abaixo da main ,   então cloque o struct  no inicio do mesmo modo , sendo que precisa apenas colocar a palavra public antes do struct  e nas variáveis dentro das chaves do struct também coloque public antes delas e substitua os comandos , por exemplo no lugar de 

 printf 

coloque 

Console.write 

e assim por diante  os outros comandos ,   faça aos pouco e poste aqui para vermos como está e em  que podemos ajudar   .

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

×