Worked 2 hours on this. It print Pascal's triangle. Change MAX_LEN
to any desired triangle size. What do you think about the quality of the code?
#include "stdafx.h"
#include <stdio.h>
#include <malloc.h>
int main() {
const unsigned int MAX_LEN = 20;
unsigned char rowNum, rowWidth, rowOffset, i;
unsigned int *numPointer, *num;
unsigned int maxNum = 0;
for (char len = 1; len <= MAX_LEN; len++)
maxNum += len;
num = (unsigned int*)malloc(sizeof(unsigned int)*maxNum);
if (num == NULL)
return 1;
for (rowNum = 0; rowNum < MAX_LEN; rowNum++) {
rowOffset = 0;
for (i = 0; i <= rowNum; i++) {
rowOffset += i;
}
num[rowOffset] = 1;
for (i = 1; i < rowNum; i++) {
num[rowOffset + i] = num[rowOffset + i - rowNum] + num[rowOffset + i - rowNum - 1];
}
num[rowOffset + rowNum] = 1;
}
numPointer = num;
for (rowNum = 0; rowNum < MAX_LEN; rowNum++) {
for (rowWidth = 0; rowWidth <= rowNum; rowWidth++) {
printf_s(" %d ", *numPointer);
numPointer++;
}
printf_s("\n");
}
return 0;
}