Erreur de compilation que je suis incapable de localiser

Je reçois une erreur que je ne parviens pas à résoudre. J’ai parcouru mon code à fond, sans succès. Qu’est-ce que je fais mal? Voir le code ci-dessous.

Erreur du compilateur:

In function 'main': ou1.c:49:1: error: expected 'while' before 'printf' printf("End of program!\n"); ^ 

Mon code:

 #include  int main(void){ int choice; float price, sum, SUMusd; float rate =1; printf("Your shopping assistant"); do{ printf("1. Set exchange rate in usd (currency rate:%f)\n", rate); printf("2. Read prices in the foreign currency\n"); printf("3. End\n"); printf("\n"); scanf("%d", &choice); switch(choice){ case 1: printf("Give exchange rate: \n"); scanf("%f", &rate); break; case 2: do{ printf("Give price(finsh with < 0)\n"); scanf("%f", &price); sum =+ price; }while(price <= 0); SUMusd = sum*rate; printf("Sum in foreign currency: %f", sum); printf("Sum in USD:%f", SUMusd); break; default: printf("Invalid choice\n"); break; }while(choice != 3); } printf("End of program!\n"); return 0; } 

Les accolades de l’instruction switch doivent être fermées avant la fin de la boucle while.

printf("Invalid choice\n"); break; } }while(choice != 3); printf("End of program!\n");

Exemple de code complet corrigé

 #include  int main(void){ int choice; float price, sum, SUMusd; float rate =1; printf("Your shopping assistant"); do{ printf("1. Set exchange rate in usd (currency rate:%f)\n", rate); printf("2. Read prices in the foreign currency\n"); printf("3. End\n"); printf("\n"); scanf("%d", &choice); switch(choice){ case 1: printf("Give exchange rate: \n"); scanf("%f", &rate); break; case 2: do{ printf("Give price(finsh with < 0)\n"); scanf("%f", &price); sum =+ price; }while(price <= 0); SUMusd = sum*rate; printf("Sum in foreign currency: %f", sum); printf("Sum in USD:%f", SUMusd); break; default: printf("Invalid choice\n"); break; } }while(choice != 3); printf("End of program!\n"); return 0; }