Estou com problemas no meu algorito em C

Criei uma calculadora:

include stdio.h

include stdlib.h

include locale.h

int main(void){

system("color 0a"); float num1, num2; char op; setlocale(LC_ALL, "portuguese"); while(1){ printf("\t\t\tCALCULADORA DO BARALHO\n"); printf("Faça seus Cálculos: "); scanf("%f%c%f", &num1,&op,&num2); switch (op){     case '+':     printf ("\nO Resultado é= %.1f\n", num1+num2);     break;     case '-':     printf ("\nO Resultado é= %.1f\n", num1-num2);     break;     case '*':     printf ("\nO Resultado é= %.1f\n", num1*num2);     break;     case '/':     printf ("\nO Resultado é= %.1f\n", num1/num2);     break; default:     system("cls");     printf("\n(There something wrong DUDE!!! Try again)\n\n");     break; } if(num1!=0 && num1!=1 && num1!=2 && num1!=3 && num1!=4 && num1!=5 && num1!=6 && num1!=7 && num1!=8 && num1!=9){     system("cls");     printf("(There something wrong DUDE!!! Try again)\n\n");     system("color 0c");     system("pause");     break;   } else{ } if(num2!=0 && num2!=1 && num2!=2 && num2!=3 && num2!=4 && num2!=5 && num2!=6 && num2!=7 && num2!=8 && num2!=9){     system("cls");     printf("(There something wrong DUDE!!! Try again)\n\n");     system("color 0c");     system("pause");     break; } else{ } printf("\t\t\t\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n!!!!LUCAS PRODUÇÕES E DESENVOLVIMENTO!!!!\n;-;");  system ("pause");  system ("cls"); 

} //use ctrl+c para fechar o programa. return 0; }

No entanto ela apresenta os seguintes problemas:

1-Assim que uma das condições de erro é atiginda o loop estabelecido pelo while(1) se encerra e o programa se fecha. Eu quero que ele volte ao início.

2-Após o primeiro cálculo dar certo, se o segundo em diante atender a uma das condições de erro o programa sofre um bug e não da pra fazer mais nada.