I'm doing a school job, doing a blackjack (21) in C. In a certain part of the program, I created a while (while the option is yes) to show the cards, the score and ask if the user wants to bet again (yes or no) at the end of the while. Except that the compiler terminates the program and does not read the scanf at the end of the while. If anyone can tell me how to solve it, I would be grateful, I have to deliver this today.
#include <stdio.h>
#include <stdlib.h>
#define max 21
int main() {
char naipe, nome[50], op;
char tipo[13] = {'A','2','3','4','5','6','7','8','9','10','J','Q','K'};
int valor, valorb, soma=0, somab=0;
int i,din=1000;
int aposta, taposta=0;
printf("Digite o seu nome:\n");
scanf("%s",&nome);
op='S';
do {
system("cls");
printf("Você tem %d unidades\n",din);
printf("Escolha sua aposta inicial, %s:\n",nome);
printf("Digite 1 para 10 unidades\n");
printf("Digite 2 para 20 unidades\n");
printf("Digite 3 para 50 unidades\n");
scanf("%d",&aposta);
} while (aposta<1 || aposta>3);
switch (aposta) {
case 1:
taposta+=10;
break;
case 2:
taposta+=20;
break;
case 3:
taposta+=50;
break;
}
while ((op=='s') || (op=='S')) {
srand(time(NULL));
i=rand()%12+1;
if ((i==11) || (i==12) || (i==13))
valor=10;
else if (i==1)
valor=1;
else
valor=i;
naipe=rand()%3+3;
soma=(soma+valor);
printf("_________\n");
printf("|%c |\n",naipe);
printf("| |\n");
printf("| %c |\n",tipo[i]);
printf("| |\n");
printf("| %c|\n",naipe);
printf("\---------\n");
i=rand()%12+1;
if ((i==11) || (i==12) || (i==13))
valorb=10;
else if (i==1)
valorb=1;
else
valorb=(i+1);
naipe=rand()%3+3;
somab=(somab+valorb);
printf("_________\n");
printf("|%c |\n",naipe);
printf("| |\n");
printf("| %c |\n",tipo[i]);
printf("| |\n");
printf("| %c|\n",naipe);
printf("\---------\n");
printf("\n");
printf("Você marcou %d pontos e tem um total de %d pontos.\n",valor,soma);
printf("O computador marcou %d pontos e tem um total de %d pontos.\n",valorb,somab);
printf("\n");
printf("Deseja fazer a jogada? [S/N]\n");
scanf("%c",&op);
}
}