## Truth Table Homework Problem

I was given the following homework problem : gather user input for x,y,z, and F (x,y,z). After that, display the truth table from the input, and output the sum of products expansion on the screen. The sum of products looks at rows where the output is 1: if the x-input is 1, it prints X, if it is 0, it prints X'. The same goes for Y and Z. If there are two rows with ones (let's say 0 0 0 1 and 1 1 1 1), the sum of products expansion should be X'Y'Z' + XYZ. My program compiles and runs, it outputs the correct truth table, however, it doesn't display the right sum of products expansion, and I cannot seem to figure out why. Any help would be appreciated, I think it is something very simple that I am not seeing, but I can be wrong. Here is my code, thanks in advance!

Java Code:
```import java.util.Scanner;

public class TruthTables
{

public static void main (String args [] )

{
Scanner in = new Scanner (System.in) ;

int [] xrow = new int [8];
int [] yrow = new int [8];
int [] zrow = new int [8];
int [] output = new int [8];
String [] sumOfProduct = new String [24];
int outputOnes = 0;

for (int i = 0; i < 8; i++)
{
System.out.println ("Enter the value for x please: ");
xrow [i] = in.nextInt();

while (xrow[i] > 1 || xrow[i] < 0)
{
System.out.println ("This input for x is invalid. Enter 0 or 1 and try again: ");
xrow [i] = in.nextInt();
}

System.out.println ("Enter the value for y please: ");
yrow [i] = in.nextInt();

while (yrow[i] > 1 || yrow[i] < 0)
{
System.out.println ("This input for y is invalid. Enter 0 or 1 and try again: ");
yrow [i] = in.nextInt();
}

System.out.println ("Enter the value for z please: ");
zrow [i] = in.nextInt();

while (zrow[i] > 1 || zrow[i] < 0)
{
System.out.println ("This input for z is invalid. Enter 0 or 1 and try again: ");
zrow [i] = in.nextInt();
}

System.out.println ("Enter the output for the function please: ");
output [i] = in.nextInt ();

while (output[i] > 1 || output[i] < 0)
{
System.out.println ("This is invalid. Enter 0 or 1 and try again: ");
output[i] = in.nextInt();
}

if (output[i] == 1)
{
outputOnes++;
}

for (int k = 0; k < outputOnes; k++)
{
if (output [i] == 1)
{
if (xrow[i] == 1)
{
sumOfProduct[i] = "X";
}

if (xrow[i] == 0)
{
sumOfProduct[i] = "X'";
}

if (yrow[i] == 1)
{
sumOfProduct[i + 1] = "Y";
}

if (yrow [i] == 0)
{
sumOfProduct[i + 1] =  "Y'";
}

if (zrow[i] == 1)
{
sumOfProduct[i + 2] = "Z";
}

if (zrow[i] == 0)
{
sumOfProduct[i + 2] = "Z'";
}

}

}

}

System.out.println ("X	Y	Z	F(X,Y,Z)	");

for (int i = 0; i < 8; i++)
{
System.out.println ( xrow[i]+ "	" + yrow[i] + "	"	+ zrow[i] + "	"	+ output[i]);
}

System.out.println ("Sum of Products Expansion : ");

if (outputOnes > 0)
{
int i = 0;
while (i < outputOnes)
{
if ( i > 0)
{
System.out.print ( " + ");
}

System.out.print (sumOfProduct[i] + sumOfProduct[i+1] + sumOfProduct[i+2]);
i++;
}

}

}

}```