Напишите скрипт, который выводит на зкран последовательно все числа от первого до второго аргумента - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Напишите скрипт CONT, который выводит на зкран последовательно все числа от первого до второго аргумента. (Пусть числа лежат в пределах от 1 до 999). Выполните проверку правильности ввода аргументов.

Решение задачи: «Напишите скрипт, который выводит на зкран последовательно все числа от первого до второго аргумента»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <errno.h>
  4.  
  5. #define LOW_BOUND (1)
  6. #define HIGH_BOUND (999)
  7.  
  8. int main(int argc, char ** argv) {
  9.     if ( argc ) {
  10.         if ( argc != 3 ) {
  11.             fprintf(stderr, "Usage: %s low high\n", *argv);
  12.             return 1;
  13.         }
  14.         else {
  15.             char * tail;
  16.             long n, m;
  17.            
  18.             errno = 0;
  19.             n = strtol(argv[1], &tail, 10);
  20.             if ( errno || *tail || n < LOW_BOUND || n > HIGH_BOUND ) {
  21.                 fprintf(stderr, "Error: first parameter is not a valid number!\n");
  22.                 return 1;
  23.             }
  24.            
  25.             errno = 0;
  26.             m = strtol(argv[2], &tail, 10);
  27.             if ( errno || *tail || m < LOW_BOUND || m > HIGH_BOUND ) {
  28.                 fprintf(stderr, "Error: second parameter is not a valid number!\n");
  29.                 return 1;
  30.             }
  31.            
  32.             if ( n >= m ) {
  33.                 fprintf(stderr, "Error: first number can't be greater or equals to second!\n");
  34.                 return 1;
  35.             }
  36.            
  37.             main(0, argv);
  38.         }
  39.     }
  40.     else {
  41.         int n = atoi(argv[1]);
  42.        
  43.         printf("%d\n", n);
  44.         if ( n < atoi(argv[2]) ) {
  45.             char tmp[4];
  46.             char * params[] = { argv[0], tmp, argv[2], NULL };
  47.             sprintf(params[1], "%d", n + 1);
  48.             main(0, params);
  49.         }
  50.     }
  51.    
  52.     return 0;
  53. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы