Task of getting the third number of an array and doing math equations on the 2 numbers before the third in C#

Viewed 29

I'm trying to do the task in the title but I run into issues in the loop of getting every third index from the array.

            double[] N = new double[3];
            int[] M = new int[9];
            int j = 0;
            for (int i = 0; i < M.Length; i++)
            {
                if (i == 2 || i == 5 || i == 8)
                {
                    Console.WriteLine("1 = sum of 2 numbers before");
                    Console.WriteLine("2 = the difference 2 numbers before");
                    Console.WriteLine("3 = multiply 2 numbers before");
                    Console.WriteLine("4 = divide 2 numbers before");
                    Console.Write("Enter number between 1-4: ");
                    M[i] = int.Parse(Console.ReadLine());
                    if (M[i] > 4)
                    {
                        Console.WriteLine("This number is'nt allowed");
                        break;
                    }
                }
                else
                {
                    Console.Write("Enter number: ");
                    M[i] = int.Parse(Console.ReadLine());
                }
            }
            for (int i = 2; i < M.Length; i += 3)
            {
                if (M[i] == 1)
                {
                    N[j] = (M[i - 2] + M[i - 1]);
                }else if(M[i] == 2)
                {
                    N[j] = Math.Abs(M[i - 2] - M[i - 1]);
                }else if (M[i] == 3)
                {
                    N[j] = (M[i - 2] * M[i - 1]);
                }
                else
                {
                   N[j] = (double) M[i - 2] / M[i - 1];
                }
                
            }

            for (int i = 0; i < N.Length; i++)
            {
                Console.Write($"{N[i]} ");
            }

as you can see I'm taking the M array and in every third number I have a choice of summing, subtracting, multiplying or dividing. what I want to do is to put all the answers from the math equations in another array (N) my problem is in the second loop because after I input all the numbers I want it takes only the last math equation and dumps everything else. for example:

Enter number: 1
Enter number: 2                                                                                                         
1 = sum of 2 numbers before                                                                                             
2 = difference 2 numbers before                                                                                         
3 = multiply 2 numbers before                                                                                           
4 = divide 2 numbers before                                                                                             
Enter number between 1-4: 1                                                                                             
Enter number: 4                                                                                                         
Enter number: 5                                                                                                         
1 = sum of 2 numbers before                                                                                             
2 = difference 2 numbers before                                                                                         
3 = multiply 2 numbers before                                                                                           
4 = divide 2 numbers before                                                                                             
Enter number between 1-4: 2                                                                                             
Enter number: 6                                                                                                         
Enter number: 6                                                                                                         
1 = sum of 2 numbers before                                                                                             
2 = difference 2 numbers before                                                                                         
3 = multiply 2 numbers before                                                                                           
4 = divide 2 numbers before                                                                                             
Enter number between 1-4: 3                                                                                                                                                                                                                   
36 0 0 

as you can see it takes only the last math answer(6 * 6 = 36) and puts it in the N array the other are 0.

1 Answers

I found my problem I was that I didn't increment j for every time the loop looped.

for (int i = 2; i < M.Length; i += 3)
            {
                Console.WriteLine(M[i]);
                if (M[i] == 1)
                {
                    N[j] = (M[i - 2] + M[i - 1]);
                }else if(M[i] == 2)
                {
                    N[j] = Math.Abs(M[i - 2] - M[i - 1]);
                }else if (M[i] == 3)
                {
                    N[j] = (M[i - 2] * M[i - 1]);
                }
                else
                {
                   N[j] = (double) M[i - 2] / M[i - 1];
                }
                j++; //the answer
            }
Related