|
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:
int a;
int lowest = marks[0]
for( your code here;
your code here;
your code here) {
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.
|
|
|
|
|
thank you, it helped me to write the program properly
|
|
|
|
|
Member 14203327 wrote: for (marks[a]<marks[b];b++;){ Among other things, this may be part of your problem. A for() loop has three components: initialization, condition, increment. Any of them can be optional. In the initialization section, you have a condition. In the condition section, you have an increment.
A more straight-forward approach might look something like:
initialize lowest to some arbitrary high number (or assign it to the 1st number in marks, and then just loop 4 times)
loop 5 times
if the current number is less than lowest, re-assign lowest to it
repeat
print
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
|
After you figure out how to set-up the for () loop , add some debugging "scaffolding" in few places to see what your code is actually doing in each iteration of the (for) loop.
Perhaps adding some basic comments would also help.
Leaving variables intentionally uninitialized ( lowest ) is bad habit to get into, it will bite you when things get more complex.
Happy learning.
#define DEBUG
int main (){
int marks [] = {20,30,40,50,60}, a = 0, b = 1 , lowest ;
for (marks[a]<marks[b];b++;){
#ifdef DEBUG
printf (" a = %d ", a);
#endif
....
lowest = marks[a];
a++;
}
printf("the lowest number in the array is %d", lowest );
return 0;
}
<pre lang="c++">
|
|
|
|
|
So, I have this snippet of code that formats an html table data cell:
if(aSensor[i].sensorSwitchState == lowState) {
client->print("<td style='width:30px; background-color:lawngreen'>");
} else {
client->print("<td style='width:30px; background-color:red'>");
}
I have each background-color:<colorname> hardcoded and the subsequent printing output is as I was expecting. However, I would like to replace the <colorname> entry - lawngreen and/or red - with a const (or #define) so that the <colorname> entry is replaced with the color name.
I've tried
#define GREEN lawngreen
...
client->print("<td style='width:30px; background-color:GREEN'>")
and that doesn't work.
I've tried
const char acolor[]="lawngreen";
client->print("<td style='width:30px; background-color:acolor'>")
and that doesn't work.
I know there has to be a way to do this, but I can't seem to figure it out. Any ideas how I go about making a declaration that will let me insert the <color name=""> in the appropriate place would be greatly appreciated.
TNX
|
|
|
|
|
Try
#define GREEN "lawngreen"
client->print("<td style='width:30px; background-color:" GREEN "'>");
|
|
|
|
|
This
#define GREEN "lawngreen"
client->print("<td style='width:30px; background-color:" GREEN "'>") should work.
There might be more elegant ways, depending on print function definition.
|
|
|
|
|
To both K5054 and Cpallini:
Thanks, that gets the job done!!
It turns out I had tried
#define GREEN "lawngreen"
but then wrote the code escaping the quotes:
client->print("<td style='width:30px; background-color:\" GREEN \"'>");
I had also tried
client->print("<td style='width:30px; background-color:"GREEN"'>");
but that didn't work. Its the space after the leading quote that does the trick.
client->print("<td style='width:30px; background-color:" GREEN"'>");
The trailing quote doesnt need a space before it.
Gotta think on that one a bit (why the quotes and their spacing is important but escaping the quotes is not)
|
|
|
|
|
In C/C++ consecutive string literals are catenated together
cout << "hello " "world" << endl;
cout << "hello world" << endl; both produce the same thing. I don't know why the C++11 standard requires a space between a literal and a string macro, but it probably has something to do with ambiguous parsing when no space is present.
As for the escaped quotes, if you mean
client->print("<td style='width:30px; background-color:\" GREEN \"'>"); recall that \" embeds a double quote in a string, much like \n or \t embeds a new-line or a tab. If that's not what you were referring to, then maybe you could explain it better?
|
|
|
|
|
Frankly, I had forgotten the concatenation example you show.
As for your escaped quotes, yes, I was referring to the use of the \ to allow the explicit use of the the following ". I thought that since the contents of the print statement were already delineated by leading and trailing quotes, that I had to use the \ to permit the use of additional quotes between those two "bookend" quotes. Thanks for setting me straight.
Its been a good day - I learned something. Thank you!!
|
|
|
|
|
I Searched on internet for any library done by c++ for scan image but cannot found
any library for c++ as open source free
can any one help me to give me any source code or links by c++ for scan image by scanner
then get direct to computer
|
|
|
|
|
|
I am trying to make a app that will record the exact duration, and the sequence of keystrokes. it need to be able to record with very precise timing because I am planing on using it to create a way to record a game follow path. For example a driving game that earns you money for just diving around in free roam and if you follow a specific path you maximize the amount of money you earn. but i don't know what i need for the coding. Is there a way to code something like that?
|
|
|
|
|
Recording keystrokes is frowned upon, and illegal without the users' consent. That being said, you could use a keyboard-hook. That does record keyboard-strokes, not characters.
Not one of the easiest things to do, and not something I'm inclined to help with for cheating-purposes.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
well it is going to be an app so they will give the consent and i will not see the key strokes
|
|
|
|
|
And they will use it to cheat the game company out of money.
|
|
|
|
|
Most serious online games have counter measures to stop this sort of thing and it directly violates there User agreement and gets you banned. If you are dealing with real money it also comes under the fraud act of most countries and selling or distributing the app itself will fall under the same laws.
I would think very carefully about what you are doing it will generally be illegal.
In vino veritas
|
|
|
|
|
Who is 'they'? If it's the company that made the game, it would be trivial for them to do this from within the game itself. If not, it's difficult and illegal.
Note that most EULAs specifically prohibit that kind of thing. At the very least, this is true for all multiplayer games, simply because it would create an unfair advantage over other players.
P.S.:
Just to be clear: any program that is capable of recording user input for other applications has the potential to record login credentials. For that reason alone it is most likely illegal in most countries, and that's on top of EULA and other rights that the game company may claim.
GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)
modified 25-Mar-19 5:27am.
|
|
|
|
|
Member 14190981 wrote: Is there a way to code something like that?
Yes.
Not that difficult if you have experience programming.
The app would need admin access and you would need to do a deep dive into OS API calls.
|
|
|
|
|
well OK it is illegal i wont try it., i mean i only wanted it so i can make an app that will allow you to make a type of AI afk non competitive grinder bot follow path so people can do long distince routs without having to be the PC for long time. i guess i should just start on a auto clicker and do even more research
|
|
|
|
|
I need to check weather Dot net 4.6 in installed on machine or not. So I checked registry entry (
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full ) for windows 10.
But I need to check for Win7 and Win8 as well. Is the registry entry same for all win7, win8 and window10.
|
|
|
|
|
It's present on my Win 7 machine.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
Why not just trying running a test API? Or are you going to install it if it isn't there?
|
|
|
|
|