expseq.c 838 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #include <math.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. int main(int argc, char* argv[])
  5. {
  6. int fstnum = 0, lstnum;
  7. if (argc == 2) {
  8. char* endptr = argv[1];
  9. lstnum = strtol(argv[1], &endptr, 10);
  10. if (!endptr) {
  11. fprintf(stderr, "%s: non-numeric arg: %s\n", argv[0], argv[1]);
  12. return 0;
  13. }
  14. } else if (argc == 3) {
  15. char* endptr = argv[1];
  16. fstnum = strtol(argv[1], &endptr, 10);
  17. if (!endptr) {
  18. fprintf(stderr, "%s: non-numeric arg: %s\n", argv[0], argv[1]);
  19. return 0;
  20. }
  21. endptr = argv[2];
  22. lstnum = strtol(argv[2], &endptr, 10);
  23. if (!endptr) {
  24. fprintf(stderr, "%s: non-numeric arg: %s\n", argv[0], argv[2]);
  25. return 0;
  26. }
  27. } else {
  28. fprintf(stderr, "%s: missing operand\n", argv[0]);
  29. return 0;
  30. }
  31. int i = fstnum;
  32. while (i <= lstnum) {
  33. printf("%d\n", (int) pow(2, (float) i));
  34. i++;
  35. }
  36. return 0;
  37. }