File: sampleprint.c

package info (click to toggle)
nyquist 3.12%2Bds-4
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 58,036 kB
  • sloc: ansic: 74,355; lisp: 20,485; java: 9,390; cpp: 6,695; sh: 207; xml: 58; makefile: 40
file content (39 lines) | stat: -rw-r--r-- 861 bytes parent folder | download | duplicates (12)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <stdio.h>

#define NPERLINE	10

main()
{
    short line[2][NPERLINE];
    register int n, i, j;
    register int curline = 0;
    int currently_printing = 1;

    for(i = 0;
       (n = fread(line[curline], sizeof(short), NPERLINE, stdin)) > 0;
       i += n, curline = 1-curline) {
        if(i != 0 && n == NPERLINE && sameline(line[0], line[1])) {
            if(currently_printing) {
                printf("*\n");
                currently_printing = 0;
            }
            continue;
        }
        currently_printing = 1;
        printf("%7d ", i);
        for(j = 0; j < n; j++)
            printf("%6d ", line[curline][j]);
        printf("\n");
    }
    printf("%4d\n", i);
}

sameline(l1, l2)
register short *l1, *l2;
{
    register n = NPERLINE;
    while(--n >= 0)
        if(*l1++ != *l2++)
            return 0;
    return 1;
}