Beispiel #1
0
int main(int argc, char** argv)
{
	char def[] = "7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450";
	char * data = (argc > 1 ? argv[1] : def);

	int len = strlen(data);
	int i;

	if (len < CHAINSIZE)
	{
		printf("The string number be longer than the chain size %d\n", CHAINSIZE);
		return 1;
	}

	for (i = 0; i < CHAINSIZE; ++i)
	{
		data[i] = parsechar(data[i]);
	}

	int max, v, istore;
	max = valueat(data, CHAINSIZE);
	istore = CHAINSIZE;

	for (i = CHAINSIZE; i < len; ++i)
	{
		data[i] = parsechar(data[i]);
		v = valueat(data, i);
		istore = v > max ? i : istore;
		max = v > max ? v : max;
	}

	printf("Max is %d at posiiton %d\n", max, istore);
	return 0;

}
Beispiel #2
0
int main(int argc, char *argv[])
{
int i,item;

#ifdef __STACK_CHECK__
    _beginStackCheck();
    atexit(stackResults);
#endif

    ioctl(STDIN_FILENO,TIOCGETP,&sg);
    ioctl(STDIN_FILENO,TIOCGETC,&tc);
    ioctl(STDIN_FILENO,TIOCGLTC,&ltc);
    ioctl(STDIN_FILENO,TIOCLGET,&localmode);
    ioctl(STDIN_FILENO,TIOCGWINSZ,&wz);
    if (argc < 2) {
    	printCurSettings();
        exit(0);
    }

    for (i = 1; i < argc;) {
      switch (item = lookup(argv[i])) {

        case INTR_C:
	        tc.t_intrc = parsechar(argv[i+1]);
	        i++;
        	break;
	case SUSP_C:
	        ltc.t_suspc = parsechar(argv[i+1]);
	        i++;
        	break;
        case DSUSP_C:
                ltc.t_dsuspc = parsechar(argv[i+1]);
                i++;
                break;
        case STOP_C:
            	tc.t_stopc = parsechar(argv[i+1]);
	        i++;
        	break;
	case START_C:
	        tc.t_startc = parsechar(argv[i+1]);
	        i++;
        	break;
        case QUIT_C:
	        tc.t_quitc = parsechar(argv[i+1]);
	        i++;
        	break;
	case ERASE_C:
		sg.sg_erase = parsechar(argv[i+1]);
		i++;
		break;
	case EOF_C:
		tc.t_eofc = parsechar(argv[i+1]);
		i++;
		break;
        case WERASE_C:
                ltc.t_werasc = parsechar(argv[i+1]);
                i++;
                break;
        case FLUSH_C:
                ltc.t_flushc = parsechar(argv[i+1]);
                i++;
                break;
        case LNEXT_C:
                ltc.t_lnextc = parsechar(argv[i+1]);
                i++;
                break;
        case RPRNT_C:
                ltc.t_rprntc = parsechar(argv[i+1]);
                i++;
                break;
	case ECHO_ON:
	        sg.sg_flags |= ECHO;
        	break;
        case ECHO_OFF:
	        sg.sg_flags &= ~ECHO;
        	break;
        case RAW_OFF:
        	sg.sg_flags &= ~RAW;
        	break;
        case RAW_ON:
	        sg.sg_flags |= RAW;
        	break;
        case CBREAK_OFF:
        	sg.sg_flags &= ~CBREAK;
        	break;
        case CBREAK_ON:
	        sg.sg_flags |= CBREAK;
        	break;
        case CRMOD_OFF:
        	sg.sg_flags &= ~CRMOD;
        	break;
        case CRMOD_ON:
	        sg.sg_flags |= CRMOD;
        	break;
        case LCTLECH_ON:
        	localmode |= LCTLECH;
	        break;
	case LCTLECH_OFF:
		localmode &= ~LCTLECH;
        	break;
        case LCRTERA_ON:
        	localmode |= LCRTERA;
	        break;
	case LCRTERA_OFF:
		localmode &= ~LCRTERA;
		break;
        default:
        	if ((item != 0) && (item <= B38400)) {
	            sg.sg_ispeed = item;
	            sg.sg_ospeed = item;
                } else usage();
                break;
      }
      i++;
    }
    ioctl(STDIN_FILENO,TIOCSETP,&sg);
    ioctl(STDIN_FILENO,TIOCSETC,&tc);
    ioctl(STDIN_FILENO,TIOCSLTC,&ltc);
    ioctl(STDIN_FILENO,TIOCLSET,&localmode);
}