Click here to Skip to main content
15,889,335 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
SuggestionRe: Combination or inheritance Pin
David Crow1-Apr-19 3:31
David Crow1-Apr-19 3:31 
Questioni really need help with this Pin
Member 1420332729-Mar-19 5:13
Member 1420332729-Mar-19 5:13 
GeneralRe: i really need help with this Pin
Richard MacCutchan29-Mar-19 5:58
mveRichard MacCutchan29-Mar-19 5:58 
AnswerRe: i really need help with this Pin
Victor Nijegorodov29-Mar-19 6:43
Victor Nijegorodov29-Mar-19 6:43 
GeneralRe: i really need help with this Pin
Member 142033272-Apr-19 4:14
Member 142033272-Apr-19 4:14 
QuestionRe: i really need help with this Pin
David Crow29-Mar-19 9:24
David Crow29-Mar-19 9:24 
AnswerRe: i really need help with this Pin
Member 1420332730-Mar-19 3:52
Member 1420332730-Mar-19 3:52 
GeneralRe: i really need help with this Pin
k505430-Mar-19 4:48
mvek505430-Mar-19 4:48 
Member 14203327 wrote:
int marks [] = {20,30,40,50,60}, a = 0, b = 1 , lowest ;
for (marks[a]<marks[b];b++;){

Let's a look at your for loop. In C the for loop is defined as for( init; condition; increment). Where init is the initial condition of the loop, condition is the end loop condition - that is if the condition expression returns true false, or non-zero, and increment is an expression that defines the next step of the loop. Lets look at your for loop:
init : marks[a] < marks[b] that's effectively a No-Op, it does evaluate to true, but it does not define the starting condition of the loop
condition : b++ I expect you know that in C false is zero and true is any non-zero value. Therefore this expression says return the value of b (= 1), then increment b, so now b = 2. At this point, the end-condition of the loop is 1, or true. that means that that the body of the loop (the portion between { and } never gets executed.. b will continue to be incremented until it gets to INT_MAX (2147483647), at which point it will roll over to INT_MIN (-2147483646) and continue incrementing until it reaches zero. However, once the value of b reaches 5 then the expression lower = marks[a] we get the dreaded undefined behavior, which, if the computer sets itself on fire, is perfectly acceptable, according to the C standard.
increment: empty expression - no action performed. That's not necessarily wrong, there's plenty of times that you might write a for loop without a increment expression. This is not one of those times.

Here's a template for what you should do for your for loop - I'll assume that you do not have C99 or C11, so you need to declare your loop variables outside the for loop:
C
int a; /* index into the marks array */
int lowest = marks[0] /* initialize the lowest variable */
for( /* initial: we already know that lowest is set to marks[0], so maybe we should set our loop variable to the next index in the array */ your code here;
     /* condition: We need to iterate over the entire array, so the condition will be when the loop variable a no longer points to a valid array member.  The array as 5 elements, so the array runs from marks[0] to marks[4]. We'll need to come up with a condition expression that will return true false when a is outside the array bounds */ your code here;
    /* increment: This is where we can change the value of loop variable so the next time through the loop, we check the next element in the array */ your code here) {
   /* If marks[a] is less than lowest, then assign marks[a] to lowest */
   your code here 
}
I hope this helps you understand where you went wrong and how to fix it.

Update: Doh Got the description of the condition 100% completely backwards. Please re-read and note strikeouts, corrections in italics follwing errors

modified 30-Mar-19 13:02pm.

GeneralRe: i really need help with this Pin
Member 142033272-Apr-19 4:13
Member 142033272-Apr-19 4:13 
SuggestionRe: i really need help with this Pin
David Crow30-Mar-19 5:33
David Crow30-Mar-19 5:33 
AnswerRe: i really need help with this Pin
Gerry Schmitz29-Mar-19 10:40
mveGerry Schmitz29-Mar-19 10:40 
AnswerRe: i really need help with this Pin
Vaclav_1-Apr-19 15:43
Vaclav_1-Apr-19 15:43 
QuestionPutting declared const into a print statement Pin
SEmmett28-Mar-19 10:45
SEmmett28-Mar-19 10:45 
AnswerRe: Putting declared const into a print statement Pin
k505428-Mar-19 11:01
mvek505428-Mar-19 11:01 
AnswerRe: Putting declared const into a print statement Pin
CPallini28-Mar-19 11:06
mveCPallini28-Mar-19 11:06 
GeneralRe: Putting declared const into a print statement Pin
SEmmett28-Mar-19 11:34
SEmmett28-Mar-19 11:34 
GeneralRe: Putting declared const into a print statement Pin
k505428-Mar-19 12:01
mvek505428-Mar-19 12:01 
GeneralRe: Putting declared const into a print statement Pin
SEmmett28-Mar-19 14:53
SEmmett28-Mar-19 14:53 
QuestionHow i get any scan image source library ? Pin
ahmed_sa26-Mar-19 23:20
ahmed_sa26-Mar-19 23:20 
AnswerRe: How i get any scan image source library ? Pin
Richard MacCutchan26-Mar-19 23:49
mveRichard MacCutchan26-Mar-19 23:49 
QuestionI am trying to make a keyboard recorder for an app Pin
Member 1419098121-Mar-19 2:09
Member 1419098121-Mar-19 2:09 
AnswerRe: I am trying to make a keyboard recorder for an app Pin
Eddy Vluggen21-Mar-19 2:18
professionalEddy Vluggen21-Mar-19 2:18 
GeneralRe: I am trying to make a keyboard recorder for an app Pin
Member 1419098122-Mar-19 2:15
Member 1419098122-Mar-19 2:15 
GeneralRe: I am trying to make a keyboard recorder for an app Pin
Richard MacCutchan22-Mar-19 4:23
mveRichard MacCutchan22-Mar-19 4:23 
GeneralRe: I am trying to make a keyboard recorder for an app Pin
leon de boer24-Mar-19 6:54
leon de boer24-Mar-19 6:54 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.