Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

\prog\ challenge

Name: Anonymous 2020-09-09 19:33

Just post any fucking code, can be fibs or even hello world

Name: Anonymous 2020-09-10 8:41

>>6 What is that...? http://www.robertgamble.net/2012/01/c11-generic-selections.html

>>5
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <inttypes.h>

int64_t atoi64(char *str) {
int64_t n = 0;
sscanf(str, "%" PRId64, &n);
return n;
}

char* to_base(int base, int64_t num) {
if(base < 2 || 36 < base) return "???";

// include some padding
static char buffer[8*64 + 4] = {0};
char *str = (buffer + sizeof(buffer) - 2);

// long long is at least 64-bit
int sign = (num < 0); num = llabs(num);

do
{
*str-- = (num % base)["0123456789abcdefghijklmnopqrstuvwxyz"];
num /= base;
}
while(num);

if(sign) *str = '-'; else str++;
return str;
}

int main(int argc, char *argv[]) {
if(argc-1 < 1) {
puts("usage: to-base <use-base> [<decimal-number>...]");
exit(1);
}

int base = atoi(argv[1]);
for(int i = 2; i < argc; i++) {
int64_t num = atoi64(argv[i]);
printf("%" PRId64 " = %d#%s\n", num, base, to_base(base, num));
}
return 0;
}

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List