| | |
subracting
Please support our C++ advertiser: Intel Parallel Studio Home
![]() |
>i just need someone to point me in the right direction.
>but the problem is that i need it to subract the highest and lowest numbers then add the remaining numbers left.
What have you tried so far? Have you even thought about it?
C++ Syntax (Toggle Plain Text)
int main ( void ) { return 0; }
What have you tried so far? Have you even thought about it?
I'm here to prove you wrong.
•
•
Join Date: Sep 2004
Posts: 56
Reputation:
Solved Threads: 2
Heres a quick algo I just threw together. There probably are more efficient ways but this gets the job done.
As I said that will get the job done based on what you gave. There are some possible issues. For example it never keeps the four numbers that are not max or min, just tallies them. If you want to keep track of the numbers you will want to implement something like an array. Also this program doesn't really do anything to handle duplicates. But hey, you never said that was an issue.
C++ Syntax (Toggle Plain Text)
float min, max, temp, count; count = 0; cin >> max; // Read in first # cin >>temp; // Read in second # if (max > temp) // This if statement will basically initialize min and max { min = temp; } else { min = max; max = temp; } for (int i=1; i <=4; i++) // Reads in next 4 #s { cin >> temp; if (temp > max) { count += max; max = temp; } else if(temp < min) { count += min; min = temp; } else { count += temp; } } cout << "The max is " << max << endl; cout << "The min is " << min << endl; cout << "The difference is " << max-min << endl; cout << "The sum of the remainding four numbers is " << count << endl; }
•
•
Join Date: Mar 2004
Posts: 1,620
Reputation:
Solved Threads: 51
Hello,
I would enter the numbers into an array, and then have the computer do a bubble sort on them. With the Bubble, the largest value will be on the top ( array[0] ) and the largest value would be on the bottom ( array [5] ) .
Code for a bubble sort is around the internet somewhere. Granted, it is not the most efficient code, but you are looking at only a handful of elements.
Then you can whack off the [0] and the [5] elements, and add the rest and get your answer.
Christian
I would enter the numbers into an array, and then have the computer do a bubble sort on them. With the Bubble, the largest value will be on the top ( array[0] ) and the largest value would be on the bottom ( array [5] ) .
Code for a bubble sort is around the internet somewhere. Granted, it is not the most efficient code, but you are looking at only a handful of elements.
Then you can whack off the [0] and the [5] elements, and add the rest and get your answer.
Christian
>Told ya there might be more efficient ways.
How is that more efficient? Handling the numbers as they come is a linear operation, bubble sort is quadratic in all but the best case.
>then have the computer do a bubble sort on them.
You mean insertion sort. There's no excuse for using bubble sort. Insertion sort is faster, easier to understand, and the implementation is shorter and more clear.
How is that more efficient? Handling the numbers as they come is a linear operation, bubble sort is quadratic in all but the best case.
>then have the computer do a bubble sort on them.
You mean insertion sort. There's no excuse for using bubble sort. Insertion sort is faster, easier to understand, and the implementation is shorter and more clear.
I'm here to prove you wrong.
•
•
Join Date: Dec 2004
Posts: 24
Reputation:
Solved Threads: 1
#include <iostream.h>
void main()
{
float min, max, temp, count;
count = 0;
cout << "enter a number" << endl;
cin >> max;
cin >>temp;
if (max > temp)
{
min = temp;
}
else
{
min = max;
max = temp;
}
for (int i=1; i <=4; i++)
{
cin >> temp;
if (temp > max)
{
count += max;
max = temp;
}
else if(temp < min)
{
count += min;
min = temp;
}
else
{
count += temp;
}
}
cout << "The max is " << max << endl;
cout << "The min is " << min << endl;
cout << "The difference is " << max-min << endl;
cout << "The sum of the remainding four numbers is " << count << endl;
}
void main()
{
float min, max, temp, count;
count = 0;
cout << "enter a number" << endl;
cin >> max;
cin >>temp;
if (max > temp)
{
min = temp;
}
else
{
min = max;
max = temp;
}
for (int i=1; i <=4; i++)
{
cin >> temp;
if (temp > max)
{
count += max;
max = temp;
}
else if(temp < min)
{
count += min;
min = temp;
}
else
{
count += temp;
}
}
cout << "The max is " << max << endl;
cout << "The min is " << min << endl;
cout << "The difference is " << max-min << endl;
cout << "The sum of the remainding four numbers is " << count << endl;
}
•
•
•
•
Originally Posted by Narue
>i just need someone to point me in the right direction.
>but the problem is that i need it to subract the highest and lowest numbers then add the remaining numbers left.C++ Syntax (Toggle Plain Text)
int main ( void ) { return 0; }
What have you tried so far? Have you even thought about it?
May 'the Google' be with you!
•
•
•
•
Originally Posted by Narue
>Told ya there might be more efficient ways.
How is that more efficient? Handling the numbers as they come is a linear operation, bubble sort is quadratic in all but the best case.
>then have the computer do a bubble sort on them.
You mean insertion sort. There's no excuse for using bubble sort. Insertion sort is faster, easier to understand, and the implementation is shorter and more clear.
[php]
// returns the sorted array of numbers (this case int)
void insertionSort(int numbers[], int array_size)
{
int i, j, index;
for (i=1; i < array_size; i++) {
index = numbers[i];
j = i;
while ((j > 0) && (numbers[j-1] > index)) {
numbers[j] = numbers[j-1];
j = j - 1;
}
numbers[j] = index;
}
}
[/php]
May 'the Google' be with you!
You need no sorting at all in this scenario. Just keep an array of 4 ints and 2 ints.
For each int read check if it's larger than the one in which indicates the smallest and smaller than the one that indicates the largest.
If so, insert it into the array.
If not, replace the largest (or smallest) with the new value and put that old largest (or smallest) into the array.
When all are read add up the elements of the array and you're done.
There's no requirement to show the numbers from smallest to largest after all so why go to the trouble of getting them in that order in the first place?
For each int read check if it's larger than the one in which indicates the smallest and smaller than the one that indicates the largest.
If so, insert it into the array.
If not, replace the largest (or smallest) with the new value and put that old largest (or smallest) into the array.
When all are read add up the elements of the array and you're done.
There's no requirement to show the numbers from smallest to largest after all so why go to the trouble of getting them in that order in the first place?
![]() |
Other Threads in the C++ Forum
- Previous Thread: Need help with a function
- Next Thread: Error Message Concerning Reading File From A Drive
| Thread Tools | Search this Thread |
api application array arrays based beginner binary c++ c/c++ calculator char char* class classes code compile compiler console conversion count delete deploy desktop directshow dll download dynamic dynamiccharacterarray encryption error file forms fstream function functions game givemetehcodez google graph gui homeworkhelp iamthwee ifstream input int java lib library linkedlist linker list loop looping loops map math matrix memory newbie news number numbertoword output pointer problem program programming project python random read recursion recursive reference return rpg simple sorting string strings studio temperature template templates test text text-file tree unix url variable vector video visual visualstudio win32 windows winsock wordfrequency wxwidgets






