みずらいので、投稿しなおし。。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(int argc, char *argv[])
{
  /* 最大の数 */
  int maxnum;
  int a, b;
  int a2, b2;
  double c, c2;

  if (argc != 2) {
    printf("usage: pythago num\n");
    return 1;
  }

  maxnum = atoi(argv[1]);

  for (a = maxnum; a > 0; --a) {
    for (b = a - 1; b > 0; --b) {
      a2 = a*a;
      b2 = b*b;
      c2 = a2 - b2;

      if (c2 > b2)
        break;

      c = sqrt(c2);
      if (c - (int)c == 0)
        printf("%d %d %d\n", b, (int)c, a);
    }
  }

  return 0;
}