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

/prog/ Challenge

Name: Anonymous 2018-04-15 1:54

Write a fizzbuzz program in a language you've never used before.
It's not hard, but I assume that if you come up with difficult challenges, people won't do them.

Name: Anonymous 2018-04-17 6:56

A custom console FizzBuzz in C11
you have to run it with ./a.out 1 101 3:Fizz 5:Buzz
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <stdbool.h>
typedef struct fb_denom_str{uint64_t denom;char str[256];}fb_denom_str;

bool test_denom(uint64_t val,uint64_t denom){
if(0==val%denom){
return true;}else{
return false;
}
}
bool test_and_print(fb_denom_str tested,uint64_t val){
if(test_denom(val,tested.denom)){
printf("%s",tested.str); return true;}
return false;
}

bool test_multiple(uint64_t val,size_t num_denoms,fb_denom_str denoms[]){uint64_t hits=0; bool result=false;
for(size_t i=0;i<num_denoms;i++){
result=test_and_print(denoms[i],val);
if(result)hits+=1;
}
if(0==hits){printf("%lu\n",val);}else{printf("\n");}//print the value
}


int fizzbuzz(size_t numstructs,uint64_t minval,uint64_t maxvalue,fb_denom_str denoms[]){
for(uint64_t i=minval;i<maxvalue;i++){
test_multiple(i,numstructs,denoms);
}
return EXIT_SUCCESS;
}

int main(int argc, char ** argv){
uint64_t minval,maxval;
fb_denom_str* denoms=malloc(sizeof(fb_denom_str)*(argc-3));
switch(argc){
case 0:return EXIT_FAILURE;
case 1:case 2: case 3:puts("Syntax: fizzbuzz minval maxval num:str ...");return EXIT_FAILURE;
default:
minval=strtoull(argv[1],NULL,10);
maxval=strtoull(argv[2],NULL,10);

size_t denom_start=0;
for(size_t i=3;i<argc;i++){
denoms[denom_start].denom=strtoull(argv[i],NULL,10);
size_t numlen=strspn(argv[i],"0123456789");//find the size of number in num:str
char* str_start=&argv[i][numlen];
size_t str_len=strlen(str_start);
if(str_len>255)str_len=255;//max length of argument str
strncpy((char* restrict)&denoms[denom_start].str,str_start+1,str_len);
denom_start++;
}}

return fizzbuzz(argc-3,minval,maxval,denoms);
}

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