Напишите скрипт, который выводит на зкран последовательно все числа от первого до второго аргумента - C (СИ)
Формулировка задачи:
Напишите скрипт CONT, который выводит на зкран последовательно все числа от первого до второго аргумента. (Пусть числа лежат в пределах от 1 до 999). Выполните проверку правильности ввода аргументов.
Решение задачи: «Напишите скрипт, который выводит на зкран последовательно все числа от первого до второго аргумента»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#define LOW_BOUND (1)
#define HIGH_BOUND (999)
int main(int argc, char ** argv) {
if ( argc ) {
if ( argc != 3 ) {
fprintf(stderr, "Usage: %s low high\n", *argv);
return 1;
}
else {
char * tail;
long n, m;
errno = 0;
n = strtol(argv[1], &tail, 10);
if ( errno || *tail || n < LOW_BOUND || n > HIGH_BOUND ) {
fprintf(stderr, "Error: first parameter is not a valid number!\n");
return 1;
}
errno = 0;
m = strtol(argv[2], &tail, 10);
if ( errno || *tail || m < LOW_BOUND || m > HIGH_BOUND ) {
fprintf(stderr, "Error: second parameter is not a valid number!\n");
return 1;
}
if ( n >= m ) {
fprintf(stderr, "Error: first number can't be greater or equals to second!\n");
return 1;
}
main(0, argv);
}
}
else {
int n = atoi(argv[1]);
printf("%d\n", n);
if ( n < atoi(argv[2]) ) {
char tmp[4];
char * params[] = { argv[0], tmp, argv[2], NULL };
sprintf(params[1], "%d", n + 1);
main(0, params);
}
}
return 0;
}