#!/usr/bin/env python from sys import argv try: last = int(argv[1]) except: print "No last number" exit(2) last = last + 1 fool_str = '' file_num = 0 filename ='' c_footer = '\treturn 0;\n}\n' # put a c source file def fizzbuzz(string, num): filename = 'func_' + str(num) + '.c' c_header = '#include\nint {}'.format('func' + str(num)) + '()\n{\n' st = '\tprintf("' + string + '");\n' f = open(filename,'w') f.write(c_header) f.write(st) f.write(c_footer) f.close() return '' def main(num): filename = 'main.c' c_header = '#include\n' f = open(filename, 'w') f.write(c_header) for x in range(num): proto = 'int ' + 'func' + str(x) + '();\n' f.write(proto) f.write('int main()\n{\n') for x in range(num): func = '\t' + 'func' + str(x) + '();\n' f.write(func) f.write(c_footer) f.close() for x in range(1,last): if not (x % 15): fool_str = fool_str + 'fizzbuzz\\n' elif not (x % 5): fool_str = fool_str + 'buzz\\n' elif not (x % 3): fool_str = fool_str + 'fizz\\n' else: fool_str = fool_str + str(x) + '\\n' if (len(fool_str.split('\\n')) == 16) \ or (x == (last - 1)): fool_str = fizzbuzz(fool_str, file_num) file_num = file_num + 1 main(file_num)