identifiant non déclaré en C

J’essaie de comstackr un programme de petite banque en C dans Visual Studio 2012 Express. Il me montre cette erreur “identifiant non déclaré” pour presque toutes les variables et celle-ci aussi “erreur de syntaxe: missing ‘;’ avant “type” “. S’il vous plaît dites-moi la syntaxe correcte.Merci.

#include #include int main() { printf("Welcome to skybank\n"); int deposit,withdraw,kbalance; char option; printf("Press 1 to deposit cash\n"); printf("Press 2 to Withdraw Cash\n"); printf("Press 3 to Know Your Balance\n"); scanf_s("%c",option); int decash,wicash; switch(option) { int balance; printf("Enter your current Balance\n"); scanf_s("%d",&balance); case 1: printf("Enter the amount you want to deposit\n"); scanf_s("%d",&decash); printf("Thank You\n"); printf("%d have been deposited in your account\n",decash); break; case 2: printf("Enter the amount you want to withdraw\n"); scanf_s("%d",&wicash); int wibal; wibal=balance-wicash; printf("Thank You\n"); printf("%d have been withdrawed from your account\n",wicash); printf("Your balance is %d\n",wibal); break; case 3: printf("Your balance is Rs.%d\n",balance); break; default: printf("Invalid Input\n"); break; } getchar(); } 

Le compilateur Microsoft C ne prend en charge qu’une version du langage vieille de 25 ans. Et l’une des limites est que toutes les variables doivent être déclarées avant toute autre instruction. Alors déplacez toutes vos déclarations de variable en haut de la fonction.

L’erreur suivante que je peux voir est l’utilisation de scanf_s avec la chaîne de format %c . Vous devez passer un pointeur sur la variable et indiquer le nombre de caractères à lire.

 scanf_s("%c", &option, 1); 

Et de même, vous devez donner une adresse pour la lecture de la balance .

Vous devez également modifier l’instruction switch afin qu’elle ne contienne que des cas. Déplacez les instructions nues à l’extérieur.

Votre lecture d’ option ne fonctionnera pas. Parce que lorsque vous vérifiez 1 vous recherchez le caractère avec le code ASCII 1. Modifiez l’ option pour qu’elle soit un int et lisez-la à l’aide de %d .

Peut-être cherchez-vous quelque chose comme ceci:

 #include #include int main(void) { int deposit,withdraw,kbalance; int option; int decash,wicash; int balance; int wibal; printf("Welcome to skybank\n"); printf("Press 1 to deposit cash\n"); printf("Press 2 to Withdraw Cash\n"); printf("Press 3 to Know Your Balance\n"); scanf_s("%d", &option); printf("Enter your current Balance\n"); scanf_s("%d", &balance); switch(option) { case 1: printf("Enter the amount you want to deposit\n"); scanf_s("%d", &decash); printf("Thank You\n"); printf("%d have been deposited in your account\n", decash); break; case 2: printf("Enter the amount you want to withdraw\n"); scanf_s("%d", &wicash); wibal=balance-wicash; printf("Thank You\n"); printf("%d have been withdrawed from your account\n", wicash); printf("Your balance is %d\n", wibal); break; case 3: printf("Your balance is Rs.%d\n", balance); break; default: printf("Invalid Input\n"); break; } getchar(); } 

En ce qui concerne les variables non identifiées, essayez de placer toutes les déclarations de variables en haut du bloc principal, quelque chose comme:

 int main() { int deposit, withdraw, kbalance, decash, wicash, wibal; char option; printf("Welcome to skybank\n"); 

Les anciennes variantes de C fronçaient les sourcils en mélangeant les déclarations de variable avec le code. À ma connaissance, le standard C de la mise en œuvre C de Microsoft est antérieur à C99, alors peut-être que cela pourrait être le problème.

Quelques autres questions que vous devriez examiner:

scanf_s("%c",option);option devrait être &option lorsque vous prenez un pointeur sur cette variable.

Aussi ici: case 1:

Vous voulez '1' (comme dans le case '1' ) au lieu de ” 1 car c’est un caractère, pas un int vous voulez.

Idem pour les autres contrôles de case .

En ce qui concerne les problèmes de scanf_s , essayez de comstackr avec des avertissements, cela aurait dû être signalé par le compilateur.

Enfin, vous voudrez peut-être débarrasser votre code des variables que vous n’utilisez pas, telles que kbalance , withdraw et deposit .

faire au début du bloc dans la déclaration de la variable pour visuel c.

Par exemple

 int main() { int deposit,withdraw,kbalance; char option; int decash,wicash int balance; int wibal; ... 

essayez ce code:

 #include #include int main() { printf("Welcome to skybank\n"); int deposit,withdraw,kbalance; char option; printf("Press 1 to deposit cash\n"); printf("Press 2 to Withdraw Cash\n"); printf("Press 3 to Know Your Balance\n"); scanf("%c",&option); int decash,wicash; switch(option) { int balance; printf("Enter your current Balance\n"); scanf("%d",&balance); case 1: printf("Enter the amount you want to deposit\n"); scanf("%d",&decash); printf("Thank You\n"); printf("%d have been deposited in your account\n",decash); break; case 2: printf("Enter the amount you want to withdraw\n"); scanf("%d",&wicash); int wibal; wibal=balance-wicash; printf("Thank You\n"); printf("%d have been withdrawed from your account\n",wicash); printf("Your balance is %d\n",wibal); break; case 3: printf("Your balance is Rs.%d\n",balance); break; default: printf("Invalid Input\n"); break; } getchar(); } 

Déplacer ceci:

 int balance; printf("Enter your current Balance\n"); scanf_s("%d",&balance); 

Avant la déclaration de switch .