I have this bubble sort code that is just supposed to sort elements of an array in ascending order:
The sorting works fine when the increment operators inner++ and outer++ are in postfix form. However, when I change it to prefix form ++inner and ++outer it no longer sorts. I always thought that it didn't matter which form you used in the third part of a for statement.Code:#include <stdio.h> int main(void) { int i = 0, didSwap = 0, temp = 0, inner = 0, outer = 0; char buffer[100] = {0}; int firstArray[10] = {0}; for (i = 0; i < 10; ++i) { printf("firstArray[%d]: ", i); fgets(buffer, sizeof(buffer), stdin); sscanf(buffer, "%d", &firstArray[i]); } for (outer = 0; outer < 9; outer++) { didSwap = 0; for (inner = outer; inner < 10; inner++) { if (firstArray[inner] < firstArray[outer]) { temp = firstArray[inner]; firstArray[inner] = firstArray[outer]; firstArray[outer] = temp; didSwap = 1; } } if (didSwap == 0) break; } for (i = 0; i < 10; ++i) printf("\nfirstArray[%d] = %d", i, firstArray[i]); return (0); }
Can someone enlighten me on to why this happens? Thanks in advance.



LinkBack URL
About LinkBacks




