TOPIC
PROBLEM 2031 - URI Fórum 1.0
This topic was solved and cannot recieve new replies.
-
willian oliveira pires replied 4 years ago
10% errado
#include<stdio.h> #include<string.h> main(){ char escolha1[10], escolha2[10]; int qtd,i; scanf("%d",&qtd); if( qtd >= 1 && qtd <= 1000){ int caso[qtd]; for(i =0; i < qtd; i++){ scanf("%s %s",escolha1,escolha2); if( (strcmp(escolha1,"pedra") == 0) && (strcmp(escolha2,"pedra") == 0) ){ caso[i] = 1; }else if( (strcmp(escolha1,"papel") == 0) && (strcmp(escolha2,"papel") == 0) ){ caso[i] = 2; }else if( (strcmp(escolha1,"ataque") == 0) && (strcmp(escolha2,"ataque") == 0) ){ caso[i] = 3; }else if( (strcmp(escolha1,"ataque") == 0) && (strcmp(escolha2,"pedra") == 0) ){ caso[i] = 4; }else if( (strcmp(escolha1,"ataque") == 0) && (strcmp(escolha2,"papel") == 0) ){ caso[i] = 4; }else if( (strcmp(escolha1,"papel") == 0) && (strcmp(escolha2,"pedra") == 0) ){ caso[i] = 5; }else if( (strcmp(escolha1,"pedra") == 0) && (strcmp(escolha2,"ataque") == 0) ){ caso[i] = 5; }else if( (strcmp(escolha1,"papel") == 0) && (strcmp(escolha2,"ataque") == 0) ){ caso[i] = 5; }else if( (strcmp(escolha1,"pedra") == 0) && (strcmp(escolha2,"papel") == 0) ){ caso[i] = 4; } } for(i = 0; i < qtd; i++){ if(caso[i] == 1){ printf("Sem ganhador\n"); }else if(caso[i] == 2){ printf("Ambos venceram\n"); }else if(caso[i] == 3){ printf("Aniquilicao mutua\n"); }else if(caso[i] == 4){ printf("Jogador 1 venceu\n"); }else if(caso[i] == 5){ printf("Jogador 2 venceu\n"); } } } return 0; }
-
Jeremias Moreira Gomes replied 4 years ago
Marco Antônio, seu método para leitura está lendo as entradas na posição errrada. Ele lê o valor de N, mas em seguida capta uma string vazia para o jogador um, o que deveria ser a jogada 1 para o jogador 2 e assim sucessivamente.
-
Marco Antônio de Almeida Fernandes replied 4 years ago
Qual o problema com o código? testei todas saídas possíveis e as respostas batem com o toolkit, não vejo erro, porém recebo 40%
#include<stdio.h> #include<stdlib.h> int decideGanhador(char jogada[2][10]){ int jogador1; int jogador2; if(strcmp(jogada[0], "papel") == 0) jogador1 = 1; else if(strcmp(jogada[0], "pedra") == 0) jogador1 = 2; else jogador1=3; if(strcmp(jogada[1], "papel") == 0) jogador2 = 1; else if(strcmp(jogada[1], "pedra") == 0) jogador2 = 2; else jogador2 = 3; if(jogador1 == 3 && jogador2 != 3) return 1; else if(jogador2 == 3 && jogador1 != 3) return 2; else if(jogador2 == 3 && jogador1 == 3) return 5; else if(jogador1 ==1 && jogador2 == 1) return 3; else if(jogador1 == 2 && jogador2 == 2) return 4; else if(jogador1 == 1 && jogador2 == 2) return 2; else return 1; } void imprimeVencedor(int ganhador){ if(ganhador == 1 || ganhador ==2) printf("Jogador %d venceu\n", ganhador); else if(ganhador == 3) printf("Ambos venceram\n"); else if(ganhador == 4) printf("Sem ganhador\n"); else printf("Aniquilacao mutua\n"); } int main(){ int i=0, j; int ganhador = 0; char jogada[2][10]; int N; scanf("%d", &N); while(i<N){ for(j=0;j<2;j++){ fflush(stdin); gets(jogada[j]); } ganhador = decideGanhador(jogada); imprimeVencedor(ganhador); i++; } return 0; }
-
Matheus Patrikus replied 4 years ago
Alguém pode me ajudar? estou recebendo 100% wrong answer mas testei e as saídas estavam (aparentemente) iguais ao do toolkit.
#include<stdio.h> #include<string.h> int main(){ int turnos,i; char movimentoum[6],movimentodois[6]; scanf("%d",&turnos); for(i=0;i<turnos;i++){ fflush(stdin); scanf("%s %s",movimentoum,movimentodois); if((strcmp(movimentoum,"papel")==0) && (strcmp(movimentodois,"papel")==0)){ printf("Ambos venceram\n"); } else{ if((strcmp(movimentoum,"pedra")==0) && (strcmp(movimentodois,"pedra")==0)){ printf("Sem ganhador\n"); } else{ if((strcmp(movimentoum,"ataque")==0) && (strcmp(movimentodois,"ataque")==0)){ printf("Aniquilacao mutua\n"); } else{ if((strcmp(movimentoum,"ataque")==0) && ((strcmp(movimentodois,"papel")==0) || (strcmp(movimentodois,"pedra")==0))){ printf("Jogador 1 venceu\n"); } else{ if(((strcmp(movimentoum,"papel")==0) || (strcmp(movimentoum,"pedra")==0)) && (strcmp(movimentodois,"ataque")==0)){ printf("Jogador 2 venceu\n"); } else{ if((strcmp(movimentoum,"pedra")==0) && (strcmp(movimentodois,"papel")==0)){ printf("Jogador 1 venceu\n"); } else{ if((strcmp(movimentodois,"pedra")==0) && (strcmp(movimentoum,"papel")==0)){ printf("Jogador 2 venceu\n"); } } } } } } } } }