Je suis dans une classe d'introduction C et j'ai un problème avec la saisie de données. Je suis au milieu d'un exercice sur les sous-programmes et mon code semble correct, mais une question dans le programme est contournée pour une raison quelconque, et je ne peux pas le comprendre.scanf ne prend pas de données
1) Le programme lit dans un numéro de livre ISBN comme 10 caractères séparés (contrôle)
2) Le programme lit dans un prix du livre (chèque)
3) Le programme lit dans le nombre d'élèves dans une classe (chèque)
4) le programme demande météo le livre est une édition plus récente ou une ancienne édition (ne fonctionne pas !!)
5) le programme demande météo le livre est Ré Quired ou Suggested (check)
J'utilise char pour les questions concernant le nouveau ou l'ancien, et requis ou suggéré, comme nous le supposons dto afin d'utiliser ce que nous avons appris jusqu'ici.
Je ne comprends pas pourquoi l'une des questions est ignorée.
Voici ma sortie:
Enter ISBN: 1231231231
Enter list price per copy: 54.99
Enter expected class enrollment: 45
Enter N for new edition or O for Older edition:
Enter R for Required or S for Suggested: R
ISBN: 1-23-123123-1
List Price: 54.99
Expected enrollment: 45
Edition, New or Old:
Importance, Required or Suggested: R
Comme vous pouvez le voir, le scanf pour la 4ème question est ignorée. Voici le code que j'ai écrit jusqu'ici. Toute aide est grandement appréciée.
Merci.
#include <stdio.h>
#define WHOLESALE 80
void getInput(char* a, char* b, char* c, char* d, char* e,
char* f, char* g, char* h, char* i, char* j,
float* listPrice, int* numStudents, char* edition, char* importance);
void calc();
void calcBooks();
void calcProfit();
void output();
int main (void) {
// Local declarations
float listPrice;
int numStudents;
char edition;
char importance;
// ISBN char variables:
char a; // 1
char b; // 2
char c; // 3
char d; // 4
char e; // 5
char f; // 6
char g; // 7
char h; // 8
char i; // 9
char j; // 10
// Get input
getInput(&a, &b, &c, &d, &e, &f, &g, &h, &i, &j, &listPrice,
&numStudents, &edition, &importance);
// Calculate
// Output
printf("\nISBN: %c-%c%c-%c%c%c%c%c%c-%c\n", a, b, c, d, e, f, g, h, i, j); // ISBN output
printf("\nList Price: %6.2f", listPrice);
printf("\nExpected enrollment: %d", numStudents);
printf("\nEdition, New or Old: %c", edition);
printf("\nImportance, Required or Suggested: %c", importance);
return 0;
} // main
/* =============== getInput ==========================================
Gets input from the user.
Pre: addresses for ISBN (in seperate characters)
and for listPrice, numStudents, importance, and edition.
Post: Passes back values thru the addresses.
*/
void getInput(char* a, char* b, char* c, char* d, char* e,
char* f, char* g, char* h, char* i, char* j,
float* listPrice, int* numStudents, char* edition, char* importance)
{
printf("\nEnter ISBN: ");
scanf("%c%c%c%c%c%c%c%c%c%c", a,b,c,d,e,f,g,h,i,j);
printf("\nEnter list price per copy: ");
scanf("%f", listPrice);
printf("\nEnter expected class enrollment: ");
scanf("%d", numStudents);
printf("\nEnter N for new edition or O for Older edition: ");
scanf("%c", edition);
printf("\nEnter R for Required or S for Suggested: ");
scanf("%c", importance);
return;
} // getInput
'' scanf' a besoin et 'pour stocker un caractère! – haccks