OpenSolaris, OpenIndiana, Nexenta Forum

Kirov OpenSolaris User Group => Разработки Kirov OSUG => Тема начата: keremet от Октябрь 25, 2009, 10:54:07 pm

Название: Генератор последовательности страниц для распечатки книгой
Отправлено: keremet от Октябрь 25, 2009, 10:54:07 pm
Решил, что такая программка нам пригодится и написал ее.

#include <stdio.h>
#include <stdlib.h>

void Usage(char *prname){
   printf(   "Usage: %s <first page> <last page> <print times>\n"
      "(<last page> - <first page> + 1) mod 4 must be 0\n"
      , prname);
   exit(1);
}

int main(int argc, char **argv){
   int n,k, pt;

   if(argc!=1+3)
      Usage(*argv);
   n = atoi(argv[1]);
   k = atoi(argv[2]);
   pt = atoi(argv[3]);
   if( (k<=n) || (k<=0) ||(n<=0) || ((k-n+1) & 3) || ((pt!=1) && (pt!=2)) )
      Usage(*argv);
   if(pt==1)      
      for(;;k-=2,n+=2){
         printf("%i,%i,%i,%i", k,n,n+1,k-1);
         if(k-1>n+1+1)
            printf(",");
         else{
            printf("\n");
            break;
         }
      }
   else{ //pt==2
      int tk=k, tn=n;
      for(;;k-=2,n+=2){
         printf("%i,%i", k,n);
         if(k-1>n+1+1)
            printf(",");
         else{
            printf("\n");
            break;
         }
      }      
      for(n=tn, k=tk;;k-=2,n+=2){
         printf("%i,%i", n+1,k-1);
         if(k-1>n+1+1)
            printf(",");
         else{
            printf("\n");
            break;
         }
      }
   }
   return 0;
}
Название: Re: Генератор последовательности страниц для распечатки книгой
Отправлено: LiveStalker от Октябрь 26, 2009, 07:18:49 pm
Полезная вещь, помню тоже такую писал. :D