TOPIC

Por que o programa só executa uma vez?

me1100 asked 4 years ago

mesmo colocando 5 casos de teste, só executa uma vez.

include

include

int main() { int a,b,t,c=1,r=0,i; char s[3]; scanf("%d",&t); for(c=1;c<=t;c++){ c++; scanf("%s",&s); for(i=0;i<3;i++){ a=s[0]-'0'; b=s[2]-'0'; if((s[1]>96)&&(s[1]<123)){ r=a+b; printf("%d\n",r); break; }else if((s[1]>64)&&(s[1]<91)){ r=b-a; printf("%d\n",r); break; }else if(a==b){ r=a*b; printf("%d\n",r); break; } } } return 0; }

Remember not post solutions. Your post may be reviewed by our moderators.

  • AyrtonAndrade replied 3 years ago

    Seu código possui varios erros:

    1 - Remova o "c++;" de dentro do primeiro for, visto que nesse primeiro for já está fazendo o incremento dessa variável;

    2 - Remova o Segundo for, ele não é preciso;

    3 - Mude a o array "char s[3];" para apenas "char s;";

    4 - Após ler a variável "t", tente ler os valores em apenas 1 scanf, exemplo: scanf("%d %c %d", &a, &s, &b);

    5 - Remova as conversões de char para inteiro (a = s[0] - '0'; b = s[2] - '0';) nas variáveis "a" e "b";

    6 - A última condição do seu codígo deve vir primeiro do que as outras 2 condições;

    7 - Troque a variável "s[1]" nas condições para apenas "s", visto que agora você está pegando para cada variável seu respectivo valor;

    8 - Remova todos os "break;" do seu código;

    9 - Troque "s > 64" por "s >= 64";

    10 - Corrigido tudo como explicado anteriormente, faça os testes do problema com sua nova solução, submeta esta solução, e se receber "Accept", remova o seu código deste post para que não seja denunciado.

    Obrigado pela atenção, e continue estudando e se desafiando com os diversos problemas na plataforma.

    MOD