#include void upper(char *str) { int i; for (i=0; i= 97) && (str[i] <= 122)) str[i] = str[i] - 32; } main() { char names[100][40]; int percentages[100]; char surname[30], cname[20], rank[20]; char tmp_surname[30]; int PassCount, NotPassCount, WrongCreditCount, percentage; int StudentCounter=0; int i; do { scanf("%s",surname); strcpy(tmp_surname,surname); upper(tmp_surname); if (strcmp(tmp_surname,"QUIT")==0) break; scanf("%s",cname); PassCount=NotPassCount=WrongCreditCount=0; do { scanf("%s",rank); upper(rank); if ( (strcmp(rank,"PASS")==0) || (strcmp(rank,"CREDIT")==0) ) PassCount++; else if (strcmp(rank,"FAIL")==0) NotPassCount++; else if (strcmp(rank,"END")==0) break; else WrongCreditCount++; } while (1); if ((PassCount>0) || (NotPassCount>0)) percentage = 100 * PassCount / (PassCount + NotPassCount); else percentage = 0; strcpy(names[StudentCounter],surname); strcat(names[StudentCounter]," "); strcat(names[StudentCounter],cname); percentages[StudentCounter]=percentage; StudentCounter ++; if (StudentCounter == 100) { printf("\nNo more space for data\nThe remaining " "data are discarded\n"); break; } } while (1); for (i=0; i