>>644
#include <stdio.h>
#include <string.h>
void insert(char **start, char **end, char **data){
  char **p = start;
  *end = *data;
  while(start<end && 0<strcmp(*(end-1), *end)){
    char *tmp=*end; *end=*(end-1);*(end-1)=tmp; end--;
  }
}
void to_up_str(char *s){
  while(*s){
    if(*s>='a'&&*s<='z') *s+='A'-'a';
    s++;
  }
}
int main(int argc, char **argv){
  if(argc<3){ printf("usage : program string1 string2 [string3....]\n"); return 1;}
  else{
    int i;
    char *buf[30000] ={argv[1], }, **end = buf+1;
    to_up_str(argv[1]);
    for(i=2; i<argc; i++){
      to_up_str(argv[i]);
      insert(buf, end, &argv[i]); end++;
    }
    for(i=0; buf[i]; i++) puts(buf[i]);
  }
  return 0;
}
cygwinなら平気。