KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I've just encountered a weird problem, I'm trying to printf an integer variable, but I forgot to specify the variable name, i.e. printf("%d"); instead of printf("%d", integerName); Surprisingly the program compiles, there is output and it is not random. In fact, it happens to be the very integer I wanted to print in the first place, which happens to be m-1. The errorneous printf statement will consistently output m-1 for as long as the program keeps running... In other words, it's behaving exactly as if the statement reads printf("%d", m-1); Anybody knows the reason behind this behaviour? I'm using g++ without any command line options. #include <iostream> #define maxN 100 #define ON 1 #define OFF 0 using namespace std; void clearArray(int* array, int n); int fillArray(int* array, int m, int n); int main() { int n = -1, i, m; int array[maxN]; int found; scanf("%d", &n); while(n!=0) { found=0; m = 1; while(found!=1) { if(m != 2 && m != 3 && m != 4 && m != 6 && m != 12) { clearArray(array, n); if(fillArray(array, m, n) == 0) { found = 1; } } m++; } printf("%d\n"); scanf("%d", &n); } return 0; } void clearArray(int* array, int n) { for(int i = 1; i <= n; i++) array[i] = ON; } int fillArray(int* array, int m, int n) { int i = 1, j, offCounter = 0, incrementCounter; while(offCounter != n) { if(*(array+i)==ON) { *(array+i) = OFF; offCounter++; } else { j = 0; while((*array+i+j)==OFF) { j++; }
Tags (comma-separated)
Save Edits
Cancel