Randomly generate an array of 100 integer numbers ranging from 100 to 999. (A) I
ID: 3587370 • Letter: R
Question
Randomly generate an array of 100 integer numbers ranging from 100 to 999.
(A) Identify the indexes of 3 largest numbers in the array using 3 variables. ( Use only comparisons. Cannot use sorting method for this request.)
(B) Identify the original indexes of ascending-sorted numbers in the array. You may use a sorting algorithm and another array for 100 indexes.
Display the original numbers using 10 lines with 10 numbers in each line. Then (A) answer and then (B) answer. Submit the C# codes and the cropping of the above results in a Word document.
can someone fix my code?
Random rnd = new Random();
int[] arr = new int[100];
int i, counter = 0;
for (i = 0; i < 100; i++)
{
int rndNumber = rnd.Next(100, 999);
arr[i] = rndNumber;
}
// index statement
int max1 = arr[0];
int max2 = arr[0];
int max3 = arr[0];
int index1 = 0;
int index2 = 0;
int index3 = 0;
//breakstatemnt
for (i = 0; i < 100; i++)
{
if (arr[i] > max3 && arr[i] <= max2)
{
max3 = arr[i];
index3 = i;
}
if (arr[i] < max2 && arr[i] >= max1)
{
max3 = max2;
index3 = index2;
max2 = arr[i];
index2 = i;
}
if (arr[i] < max1)
{
max3 = max2;
index3 = index2;
max2 = max1;
index2 = index1;
max1 = arr[i];
index1 = i;
}
}
//sorted array
Console.WriteLine("Array:");
Array.Sort(arr);
for (i = 0; i < arr.Length; ++i)
{
Console.Write(arr[i] + " ");
counter++;
if (counter == 10) { Console.Write(" "); counter = 0; }
}
//output
Console.WriteLine();
Console.WriteLine("Index: " + index1 + " Value: " + max1);
Console.WriteLine("Index: " + index2 + " Value: " + max2);
Console.WriteLine("Index: " + index3 + " Value: " + max3);
Array.Sort(arr);
for (i = 0; i < 100; i++)
{
if (i % 10 == 0)
Console.WriteLine("sorted array");
Console.Write(arr[i] + " ");
}
Console.WriteLine();
Console.Read();
Explanation / Answer
Random rnd = new Random();
int[] arr = new int[100];
int i, counter = 0;
for (i = 0; i < 100; i++)
{
int rndNumber = rnd.Next(100, 999);
arr[i] = rndNumber;
}
// index statement
int max1 = arr[0];
int max2 = arr[0];
int max3 = arr[0];
int index1 = 0;
int index2 = 0;
int index3 = 0;
//breakstatemnt
for (i = 0; i < 100; i++)
{
//modified code
if(arr[i]>max1)
{
max3=max2;
index3 = index2;//updating 3rd large value
max2 = max1;
index2 = index1;//updtaing secode large value
max1 = arr[i];
index1= i;//updating third large value...
}
/*
if (arr[i] > max3 && arr[i] <= max2)
{
max3 = arr[i];
index3 = i;
}
if (arr[i] < max2 && arr[i] >= max1)
{
max3 = max2;
index3 = index2;
max2 = arr[i];
index2 = i;
}
if (arr[i] < max1)
{
max3 = max2;
index3 = index2;
max2 = max1;
index2 = index1;
max1 = arr[i];
index1 = i;
}*/
}
Console.WriteLine();
Console.WriteLine("Largest value Index: " + index1 + " Value: " + max1);
Console.WriteLine("Seconde largest value Index: " + index2 + " Value: " + max2);
Console.WriteLine("Third Largest value Index: " + index3 + " Value: " + max3);
//sorted array
Console.WriteLine("Array:");
//Array.Sort(arr);
int[] b = new int[100];//creating new array with 100 elements
for(i=0;i<100;i++)
{
//storing index positions of arr elements in b
b[i]=i;
}
//sorting arr by keeping previous index positions...
for(i=0;i<100;i++)//sorting and keeping index positions
{
for(j=0;j<100;j++)
{
if(arr[i]<arr[j])
{
//swapping
int k=arr[i];
arr[i]=arr[j];
arr[j]=i;
k = b[i];
b[i]=b[j];
b[j]=k;//swapping previous index values also...
}
}
}
Console.WriteLine("After Sorting : ");
for (i = 0; i < arr.Length; ++i)
{
Console.Write(arr[i] + " and its previsou position :"+b[i]);
}
/*
for (i = 0; i < arr.Length; ++i)
{
Console.Write(arr[i] + " ");
counter++;
if (counter == 10) { Console.Write(" "); counter = 0; }
}
//output
Console.WriteLine();
Console.WriteLine("Index: " + index1 + " Value: " + max1);
Console.WriteLine("Index: " + index2 + " Value: " + max2);
Console.WriteLine("Index: " + index3 + " Value: " + max3);
Array.Sort(arr);
for (i = 0; i < 100; i++)
{
if (i % 10 == 0)
Console.WriteLine("sorted array");
Console.Write(arr[i] + " ");
}
Console.WriteLine();
Console.Read()*/;
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.