• Status: Solved
• Priority: Medium
• Security: Public
• Views: 454

# Arrays

write a c program segment to display the index of the smallest and the largest numbers in an array x of 20 integers. Assume array x already has values assigned to each element.

so arrays means using int x[20]? I don't know how you to make the program pick the smallest and the largest from a set of 20 integers. This teach yourself class is very difficult for me.

thanks
0
thunderrolls
1 Solution

Commented:
Hi thunderrolls,

To find the maximum value of an array, start by setting a value to something lower than you can reasonably expect to see. Then loop through the array. For each element, if it is greater than your current value, set your value to it.

Minimum is just the opposite way around.

Paul
0

Commented:
OK.. I'll try algorithm this time ;)

set min to arr[0]
set max to arr[0]
loop from 1st to 19th element (i<20) and in each iteration, perform the below operations:
if  max < current element, max = current element
if  min > current element, min = current element

0

Senior DeveloperCommented:
oops, sorry

thunderrolls, first of all, you should assgin min, max to the first element of array:
min = max = x[0];

Then you use the loop FOR
for (i = 0; i < 20; i++)

then you use IF statement.
if (max < x[i]) max = x[i];
if (min > x[i]) min = x[i];

Finally, you output min, max value by prinft("Min : %d, Max : %d", min, max);

Goodluck.
Bonmat86.
0

Author Commented:
is this even close?

int small = 0;
int large = 0;
int i;

for(i=0; i<20; ++i) {
if(x[i] > x[large])
large = i;
if(x[i] < x[small])
small = i;
}

printf("Smallest is at: %d \n", small);
printf("Largest is at: %d \n", large);
0

Commented:
Good :)
0

Commented:
>>          if(x[i] > x[large])

This might work better:

if(x[i] > large)

Paul
0

Commented:
Oops!

and

>>               large = i;

you'd be better off with:

large = x[i];

see 'large' is just a number and 'x' is an array. That means that most of the time when you see an x it should have a '[' next to it while large will almost certainly not have one associated with it.

Paul
0

Commented:
Paul, the code posted by the author works perfectly without any flaws. Why are you introducing the bugs ?
0

Commented:
Harish,

Ahhhh.. I seee. :-)

thunderrolls,

I was trying to find you the highest value, without interest in where it is. Mine is a very slightly faster algorithm that only delivers the highest value, not 'where it is'. Harish's solution is a much more flexible and equally tidy technique that I would like to see more often.

Paul
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.