void checkwin () { int i; for (i=0; i<num; i++) if (scale [i] >= 1100) break; if (i >= num) return; printscale (); printf ("\n\n\nКонец игры.\n"); printrez (); exit (0); }
int main(int argc, char *argv[]) { char scalename[4000]; int scale, note; int ix; int useflats = 0; argc--, argv++; if (argc == 0) { for (scale = 0; scale < ACOUNT(scales); scale++) printf("%s\n", scales[scale].name); return 0; } /* '-f' option: use flats instead of sharps */ if (strcmp(argv[0], "-f") == 0 && argc >= 2) { useflats = 1; argc--, argv++; } for (note = 0; note < NUMNOTES; note++) { if (strcasecmp(notessharp[note], argv[0]) == 0) break; if (strcasecmp(notesflat[note], argv[0]) == 0) { useflats = 1; break; } } if (note == NUMNOTES) errx(1, "%s is not a note", argv[0]); argc--, argv++; if (argc == 0) { for (scale = 0; scale < ACOUNT(scales); scale++) { printf("%s: ", scales[scale].name); printscale(note, scale, useflats); } return 0; } strlcpy(scalename, argv[0], sizeof scalename); for (ix = 1; ix < argc; ix++) { strlcat(scalename, " ", sizeof scalename); strlcat(scalename, argv[ix], sizeof scalename); } for (scale = 0; scale < ACOUNT(scales); scale++) if (strcasecmp(scales[scale].name, scalename) == 0) break; if (scale == ACOUNT(scales)) errx(1, "%s: don't know that scale", scalename); printscale(note, scale, useflats); return 0; }