[LON-CAPA-cvs] cvs: capa /capa51/pProj capaCommon.c
albertel
lon-capa-cvs@mail.lon-capa.org
Wed, 26 Jun 2002 17:26:09 -0000
albertel Wed Jun 26 13:26:09 2002 EDT
Modified files:
/capa/capa51/pProj capaCommon.c
Log:
- fixes BUG#544
Index: capa/capa51/pProj/capaCommon.c
diff -u capa/capa51/pProj/capaCommon.c:1.20 capa/capa51/pProj/capaCommon.c:1.21
--- capa/capa51/pProj/capaCommon.c:1.20 Fri Dec 21 15:25:40 2001
+++ capa/capa51/pProj/capaCommon.c Wed Jun 26 13:26:09 2002
@@ -2921,7 +2921,7 @@
int sig, corr_len;
int choice[ANSWER_STRING_LENG];
char num_str[ANSWER_STRING_LENG], unit_str[ANSWER_STRING_LENG];
- char fmted[ANSWER_STRING_LENG], correct[ANSWER_STRING_LENG], answer[ANSWER_STRING_LENG];
+ char fmted[ANSWER_STRING_LENG], correctans[ANSWER_STRING_LENG], answer[ANSWER_STRING_LENG];
double n_part;
double given, target, ratio, fmted_target, target_u, target_l, scale=1.0;
double delta;
@@ -3020,14 +3020,18 @@
{
corr_len = strlen(s); input_len = strlen(ans);
if( corr_len == input_len ) {
- for(idx=0;idx<ANSWER_STRING_LENG;idx++) choice[idx] = 0;
+ for(idx=0;idx<ANSWER_STRING_LENG;idx++) {
+ choice[idx] = 0;correctans[idx] = 0;
+ }
result = EXACT_ANS;
for(ii=0;ii<corr_len; ii++) {
idx = toupper(s[ii]) - 'A'; choice[idx] = 1;
}
for(ii=0;ii<input_len;ii++) {
- idx = toupper(ans[ii]) - 'A';
- if(choice[idx] != 1 ) result = INCORRECT;
+ idx = toupper(ans[ii]) - 'A'; correctans[idx] = 1;
+ }
+ for(ii=0;ii<ANSWER_STRING_LENG;ii++) {
+ if(choice[ii] != correctans[ii] ) result = INCORRECT;
}
} else { result = INCORRECT; }
break;
@@ -3077,7 +3081,8 @@
int sig_l;
int sig_u;
char *fmt;
- int choice[ANSWER_STRING_LENG], ii, idx, corr_len, input_len;
+ int choice[ANSWER_STRING_LENG], correctans[ANSWER_STRING_LENG];
+ int ii, idx, corr_len, input_len;
int result = INCORRECT, sig, outcome, all_alphabet;
char fmted[FORMAT_STRING_LENG];
double given, target, ratio, fmted_target, target_u, target_l, scale=1.0;
@@ -3181,13 +3186,18 @@
{
corr_len = strlen(correct); input_len = strlen(answer);
if( corr_len == input_len ) {
- for(ii=0;ii<ANSWER_STRING_LENG;ii++) choice[ii] = 0; result = EXACT_ANS;
+ for(idx=0;idx<ANSWER_STRING_LENG;idx++) {
+ choice[idx] = 0;correctans[idx] = 0;
+ }
+ result = EXACT_ANS;
for(ii=0;ii<corr_len; ii++) {
idx = toupper(correct[ii]) - 'A'; choice[idx] = 1;
}
for(ii=0;ii<input_len;ii++) {
- idx = toupper(answer[ii]) - 'A';
- if(choice[idx] != 1 ) result = INCORRECT;
+ idx = toupper(answer[ii]) - 'A'; correctans[idx] = 1;
+ }
+ for(ii=0;ii<ANSWER_STRING_LENG;ii++) {
+ if(choice[ii] != correctans[ii] ) result = INCORRECT;
}
} else { result = INCORRECT; }
break;