do
{
flag=arrange(array,num);
}while( flag==-1);
This is the only place where flag is being used. So isn't it simple? flag is used to store the result of arrange and arrange is called while the flag is -1.
Now go to the arrange function. It returns -1 when two elements in the array is swapped. That means the original array didnt have it's data in sorted order. Now from that knowledge what can you say? If the original array was not in sorted order, arrange returns -1. So the above loop means
do
arrange( array )
until ( the original array was sorted )
Rather inefficient, but a common sorting algorithm. Hope you understand.
WolfPack
Postaholic
2,051 posts since Jun 2005
Reputation Points: 572
Solved Threads: 115
Your program basically uses Bubble Sort to sort the array entries in descending order. Bubble sort uses 2 for loops to sort the array provided to it. The while loop in main serves as a replacement to the second for loop of Bubble sort. And it is the variable flag which decides till wat time the sorting should continue. When the array is completely sorted the control in the funtion never satisfies the condition if(block[j] < block[j+1]) . Hence the flag remains 1 and the sorting is complete.
In short[quote]
if (flag == -1) => array is not sorted and keep sorting
if (flag == 1) => array is sorted and now stop.
HOpe it helped.
Bye.
~s.o.s~
Failure as a human
11,938 posts since Jun 2006
Reputation Points: 3,281
Solved Threads: 734
flag is a preordered keyword that isnt avaible to be used as a variable or a function name or a structure name blah blah.... simply change the keyword and it'll work
Hello friend, i really fail to understand on what topic are u talking about. Are u giving out answers to ppl just randomly? flag is not a reserverd keyword in C++ or C. THe original poster wanted to understand why the variable flag was used.
Please dont misguide the people reding this thread by giving out contradictory answers.
Bye.
~s.o.s~
Failure as a human
11,938 posts since Jun 2006
Reputation Points: 3,281
Solved Threads: 734