/* Can you explain why it's important for this program to check argc > 1? */ void printstring(char *x) { while (*x) putchar(*x++); } int stringlength(char *x) { char *y; for (y = x;*y;++y) ; return y - x; } int main(int argc,char **argv) { int i; int shortest; if (argc > 1) { shortest = 1; for (i = 2;i < argc;++i) if (stringlength(argv[i]) < stringlength(argv[shortest])) shortest = i; printstring(argv[shortest]); printstring("\n"); } return 0; }