Skip to main content
GameDev.net gamedev.net
🔒 Locked

pancake program

Started by phil67rpg Feb 13, 2012 at 2:38 AM 13 replies 2.8k views
Original Post
phil67rpg
phil67rpg
well I am still working on my pancake program using c++. I found this problem online and it is good for me to brush up on my programming skills.
here is some code
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]#include[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"][color="#000000"] [/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][/font][/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]using[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"][color="#000000"] [/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]namespace[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"][color="#000000"] std;[/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]#define[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"][color="#000000"] SIZE 3[/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]int[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"][color="#000000"] pancake[SIZE];[/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]int[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"][color="#000000"] main()[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]{[/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]for[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]([/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]int[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] i=1;i<=SIZE;i++)[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]{[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]cout << [/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]"Enter number of pancakes eaten: "[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"];[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]cin >> pancake;[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]cout << endl;[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]cout << [/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]"Person "[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] << i << [/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]": ate "[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] << pancake << [/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]" pancakes"[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] << endl;[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]cout << endl;[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]}[/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]int[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] hi = pancake[1];[/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]int[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] lo = pancake[1];[/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]for[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] ([/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]int[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] i=1; i<=SIZE;i++)[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]{[/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]if[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"](hi < pancake)[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]hi=pancake;[/font][/font]

[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]if[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"](lo > pancake)[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]lo=pancake;[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]}[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]cout << [/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]"Highest value is "[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] << hi << endl;[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]cout << [/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]"Lowest value is "[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] << lo << endl;[/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]for[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]([/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]int[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] x=1; x<=SIZE;x++)[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]{[/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]for[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]([/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]int[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] y=1; y<=SIZE;y++)[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]{[/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]if[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"](pancake[y] [font="Consolas"][size="2"][font="Consolas"][size="2"]{[/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]int[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] temp = pancake[y+1];[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]pancake[y+1]=pancake[y];[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]pancake[y]=temp;[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]}[/font][/font]

[font="Consolas"][size="2"][font="Consolas"][size="2"]}[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]}[/font][/font]
[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]for[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] ([/font][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]int[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] i=1;i<=SIZE;i++)[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]{[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]cout << [/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]"Person "[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] << i << [/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]": ate "[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] << pancake << [/font][/font][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"][font="Consolas"][size="2"][color="#a31515"]"pancakes"[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] << endl;[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]}[/font][/font]

[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]int[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] test;[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]cin >> test;[/font][/font]

[font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]return[/font][/font][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] 0;[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]}[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]?[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]I am alomost finished all I need to do is sort the number of pancakes eaten from greatest to smallest.
such as[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]Person 4: ate 10 pancakes[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]Person 3: ate 7 pancakes[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]Person 5: ate 4 pancakes[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]and etc...[/font][/font]
[font="Consolas"][size="2"][font="Consolas"][size="2"]I just need a second pair of eyes and a little hint.Let me know if you need more information.[/font][/font]
fastcall22
fastcall22


int hi = pancake[1];
int lo = pancake[1];
for (int i=1; i<=SIZE;i++)

[/quote]

The first element in an array is 0, and the last element in an array is SIZE-1.
phil67rpg
phil67rpg
well this is where I am stuck.

[font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff]for[/font][/font][/font][font=Consolas][size=2][font=Consolas][size=2] ([/font][/font][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff][font=Consolas][size=2][color=#0000ff]int[/font][/font][/font][font=Consolas][size=2][font=Consolas][size=2] i=1;i<=SIZE;i++)[/font][/font]
[font=Consolas][size=2][font=Consolas][size=2]{[/font][/font]
[font=Consolas][size=2][font=Consolas][size=2]cout << [/font][/font][font=Consolas][size=2][color=#a31515][font=Consolas][size=2][color=#a31515][font=Consolas][size=2][color=#a31515]"Person "[/font][/font][/font][font=Consolas][size=2][font=Consolas][size=2] << i << [/font][/font][font=Consolas][size=2][color=#a31515][font=Consolas][size=2][color=#a31515][font=Consolas][size=2][color=#a31515]": ate "[/font][/font][/font][font=Consolas][size=2][font=Consolas][size=2] << pancake << [/font][/font][font=Consolas][size=2][color=#a31515][font=Consolas][size=2][color=#a31515][font=Consolas][size=2][color=#a31515]"pancakes"[/font][/font][/font][font=Consolas][size=2][font=Consolas][size=2] << endl;[/font][/font]
[font=Consolas][size=2][font=Consolas][size=2]}[/font][/font]
fastcall22
fastcall22
Right.

pancake, when i is 1, is the second element in the array.
pancake, when i is SIZE, is not a valid element in the array.
phil67rpg
phil67rpg
can you please elaborate on how to output who ate the pancake and how many he ate.
Cornstalks
Cornstalks

can you please elaborate on how to output who ate the pancake and how many he ate.

How about you google how to use arrays in C++? Here, I'll even give you a link. I'm certainly not trying to be rude, but google is your best friend when it comes to trying to figure something out. So is being able to clearly explain what the problem is, what you've tried, what you think it might be, etc.

Also, putting your code between [code ][/code ] tags (without the spaces) makes it nice and pretty. You already know about code tags though, so I'm not sure why you don't use them.
phil67rpg
phil67rpg
can I get some code to work with.
Cornstalks
Cornstalks

can I get some code to work with.

Dude. Did you even click the link in my post? Did you even look at the example on that page that shows exactly how to print out an array? Have you even really tried to think about what fastcall22 said?

And yes, you can get some code to work with. From google.
phil67rpg
phil67rpg
sorry but I some times try to take the easy way out, my apoligize to fastcall
Cornstalks
Cornstalks

sorry but I some times try to take the easy way out, my apoligize to fastcall

That's not how it works here, and that's not how it works in life. If you want to learn how to program, you're going to have to work your butt off, because it's hard and it takes a lot of thinking and work. If you don't want to put effort into this, just quit now, because you're wasting your time and you're wasting the community's time. Otherwise, start putting effort into actually trying to learn something, and then (here's the important part) don't stop putting effort into it.
phil67rpg
phil67rpg
sorry corn I will try harder to work out these simple programs.Just like I had to do in college, give it the old college try.
BeerNutts
BeerNutts

well this is where I am stuck.

[font=Consolas][size=2][color=#0000ff]for[/font][font=Consolas][size=2] ([/font][font=Consolas][size=2][color=#0000ff]int[/font][font=Consolas][size=2] i=1;i<=SIZE;i++)[/font]
[font=Consolas][size=2]{[/font]
[font=Consolas][size=2]cout << [/font][font=Consolas][size=2][color=#a31515]"Person "[/font][font=Consolas][size=2] << i << [/font][font=Consolas][size=2][color=#a31515]": ate "[/font][font=Consolas][size=2] << pancake << [/font][font=Consolas][size=2][color=#a31515]"pancakes"[/font][font=Consolas][size=2] << endl;[/font]
[font=Consolas][size=2]}[/font]


Phil, when fastcall22 said:
[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]

The first element in an array is 0, and the last element in an array is SIZE-1. [/quote]

[/font]
[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]

What did you think it meant? I'll tell you. It means, when you loop through an array, you start at 0, not 1, and you end at SIZE-1.

[/font]

[font="helvetica, arial, verdana, tahoma, sans-serif"][color="#282828"]So, you're loop should be:[/font]



[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]for (int i = 0; i < SIZE-1; i++)[/font]


[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif][/font]



[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]That means it will start with pancake[0], then pancake[1], then pancake[2]. pancake[3] is not a valid array location for an array that was defined as pancake[3]. [/font][color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]Now, use the link cornstalk gave you.[/font]

My Gamedev Journal: 2D Game Making, the Easy Way

---(Old Blog, still has good info): 2dGameMaking
-----
"No one ever posts on that message board; it's too crowded." - Yoga Berra (sorta)
rip-off
rip-off
One problem you are going to have looking for the output outlined in the original post is that you aren't storing the person identifier - it is implied by the position in the array. This means that when you sort the array the person identifiers will be "lost".

You'll get output like this:

Person 1: ate 10 pancakes
Person 2: ate 7 pancakes
Person 3: ate 4 pancakes
and etc...
[/quote]
The persons {id} will always be in contiguous, ascending order.

You need to store the person's index too, if you want this to work. One simple way is to create a structure.

struct PancakeEater
{
int id;
int countPancakes;
};

In your first loop, you should initialise the person identifier to the current iteration value (possibly + 1, depending on whether you want to store in 0 based format or in human based format), as well as storing the number of pancakes eaten.

You can sort based purely on the pancake value. For example, using the built-in C++ std::sort algorithm:

#include <algorithm>

// PancakeEater structure as above

const int N = /* ... */;
PancakeEater people[N]

bool sortByPancakes(const PancakeEater &a, const PancakeEater &b)
{
return a.countPancakes < b.countPancakes;
}

int main()
{
// ...

std::sort(people, people + N, &sortByPancakes);

for(int i = 0 ; i < N ; ++i)
{
std::cout << "Person " << people.id << " ate " << people.countPancakes << " pancakes.\n";
}
}


Also, I note that you are creating lots of similar threads[size=2][sup][1][2][/sup] - this appears to be the 3[sup]rd[/sup] one on the topic of sorting. Please keep the conversation to a single thread about a particular topic or issue you are having.

[1] http://www.gamedev.n...79#entry4911179
[2] http://www.gamedev.n...48#entry4912348
jbadams
jbadams

sorry but I some times try to take the easy way out

I'm going to go against the trend and suggest that it isn't necessarily a bad thing to want to take the easy way out.

However, if you want to take the easy way out, you need to really take the easy way out rather than trying to find an easier way of taking the harder option -- what do I mean?

If you want to take the easy way out, maybe you should consider not learning to program C++ to create games; there are many ways of creating games that don't require programming in C++, from selecting a simpler programming language (Python or C# might make good choices) to using editing software such as Game Maker that don't require much -- if any -- programming at all. A more approachable language such as Python or C# will be just as capable as C++ in your hands, but should have a much gentler learning curve. As for packages like Game Maker -- they are limited, but there are a multitude of packages out there (FPS Creator, Adventure Game Studio ,Realm Crafter, etc.) suited to different types of games, and you might be surprised at the results they can produce when used correctly.


By choosing to learn C++, you're choosing a more difficult approach than some other options -- you've made the choice that you don't want to "take the easy way out". If you're going to stick with C++, you really do need to knuckle down and learn to solve these problems properly, without simply being given someone else's code when you get stuck.


If you want to take the easy way out there's absolutely no shame in choosing an easier option and creating games without going through such a difficult learning process -- but if those other options aren't for you, you need to stick with it, and work through the difficulties you encounter.


I know this wasn't entirely on topic and doesn't help with your immediate problem, but I hope that you'll take away the core message and either really knuckle down to learn your C++ or choose an easier option to really "take the easy way out"; if you're sticking with C++, you should absolutely continue to work at this problem, and keep at it until you've both solved the problem, and -- more importantly -- understood how you solved it.

Good luck! smile.png
- Jason Astle-Adams
phil67rpg
phil67rpg
thanks for all the input I am going to stick with c++ because I have worked with it for a long time, and I know it is good tool to program with.I really dont like game engines I feel like I am cheating.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.