Hola,
no podemos ver la imagen jpg que has posteado ya que no la has subido a Internet. Has puesto directamente una "ruta interna" de tu ordenador, no una URL de la web... así que no sabemos que pide el enunciado completo y sería importante para poder ayudarte.
Trata de subirlo a alguna web de alojamiento de imagenes, como
http://www.subirimagenes.com por ejemplo.
O bien teclea tú la parte que no podemos ver.
De otro modo, no podemos saber que es lo que se supone que debes lograr hacer, y por lo tanto ver que estás haciendo mal.
Por lo pronto, veo un par de posibles fallos.
System.out.println("Venta en el dia "+r+" de "+n[fila]);
dtrabajados [fila][col]=dato.nextByte();
Aquí por el mensaje en pantalla parece que estás pidiendo el valor de producción o venta del día, pero el dato que luego lees parecen ser... ¿los dias trabajados?
Luego, una pequeña tontería que nos pasa a todos...
System.out.println("Planta con mayor productividad");
if((planta[0]=a1)>(a1+dtrabajados [fila][col])) {
if((planta[0]=a2)>(a2+dtrabajados [fila][col])) {
if((planta[0]=a3)>(a3+dtrabajados [fila][col])) {
if((planta[0]=a4)>(a4+dtrabajados [fila][col])) {
if((planta[0]=a5)>(a5+dtrabajados [fila][col])) {
En las condiciones de esos if, seguramente tendrás que poner doble igual "==" que es la instrucción para COMPARAR.
El igual simple "=" es la instrucción para ASIGNAR.
Hasta no conocer el enunciado completo, no podremos darte más indicaciones sobre como resolverlo.
Por último, solo un pequeño comentario, sin apenas importancia.
Los tipos de dato byte y float, está bien conocerlos y usarlos cuando puedan ser útiles. Pero en mi opinión, cuando se está aprendiendo, es mejor usar los tipos de datos que Java emplea por defecto, que son el int y el double.
Más que nada porque de lo contrario tienes que estar haciendo
casting a byte o float varias veces, lo cuál provoca que el código sea un poquito más engorroso de leer y de escribir.. y de todos modos no ganas ninguna ventaja por usar tipos de datos que ocupan menos memoria, ya que hablamos de unos pocos bytes "de ahorro".
La verdadera utilidad de los tipos de dato float, byte, short.... es sobre todo en programas que tienen que trabajar con enormes colecciones de datos.
Por ejemplo operar con un arreglo que alberga, yo que se.. 5.000.000 de valores double supone un gran esfuerzo de procesado realizar operaciones aritméticas con ellos y puede ralentizar mucho la ejecución de un programa.
En cambio si podemos permitirnos transformarlos a float, el esfuerzo es mucho menor.
Aquí si que se nota, pero en pequeños ejercicios de aprendizaje como el que estamos haciendo, no aporta nada, excepto obligarnos a hacer casting de datos.
Así que es más comodo usar int y double directamente, excepto claro está, que el enunciado del ejercicio o el profesor que luego vaya a corregir el trabajo, pida expresamente utilizar otros tipos de datos.
Un saludo