51 lines
738 B
C
51 lines
738 B
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <math.h>
|
|
|
|
long parse_long(const char *str) {
|
|
long val;
|
|
char *ptr;
|
|
|
|
val = strtol(str, &ptr, 0);
|
|
if (!*str || *ptr)
|
|
return 0;
|
|
|
|
return val;
|
|
}
|
|
|
|
int main(int argc, char **argv) {
|
|
long min = 0;
|
|
long max = 0;
|
|
|
|
if (argc > 1) {
|
|
for (int i = 1; i < argc; i++) {
|
|
long val = parse_long(argv[i]);
|
|
if (val > max)
|
|
max = val;
|
|
|
|
else if (val < min)
|
|
min = val;
|
|
}
|
|
}
|
|
|
|
else {
|
|
printf("spark [val1 val2...]\n");
|
|
return 0;
|
|
}
|
|
|
|
|
|
long diff = max - min - 1;
|
|
if (diff < 1)
|
|
diff = 1;
|
|
|
|
for (int i = 1; i < argc; i++) {
|
|
putchar('\xe2');
|
|
putchar('\x96');
|
|
putchar('\x82' + round(parse_long(argv[i]) - min - 1) / diff * 7);
|
|
}
|
|
|
|
putchar('\n');
|
|
return 0;
|
|
}
|