0
#include<iostream>
using namespace std;
int main()
{
    int i, j,nota[4][5];
    int calificacion, cont=0, contt = 0,max=0;

    for (i = 0; i < 4; i++)
    {
        cout << "Turno " << i + 1 << endl;
        for (j = 0; j < 5; j++)
        {
            cout << "Operario " << j + 1 << "\tDigite la calificacion : ";cin >> nota[i][j];
            if (nota[i][j] >= 6)
            {
                cont++;
            }

            if (cont == 5)
            {
                contt++;
            }

        }
        if (contt > 0)
        {   
            max = i+1;
        }
        if (contt > 0)
        {
            nota[i][j] = 0;
            nota[i][j] = max;

        }
        max = 0;
        cont= 0;
        system("cls");
    }
    for (i = 0; i <contt; i++)
    {
        cout << " Turno todas notas aprovativas :  " << nota[i][j];
        cout << endl;
    }
    system("pause");
    return 0;
}

hay 4 turno 5 operario es un arreglo bidimensional una matriz nesecito guardar el valor de i cuando todos los operarios votan sobre 6 consigo saber cuantos turnos fueron en los que todos votaron aprovatoriamente pero no en que turno lo que necesito es guardar ese valor de i despues imprimirlo es decir en el turno 2,3 se voto aprovatoriamente pero no se como hacerlo cuando imprimo me sale el valor de i desde 0 ayuda ya publique esto antes pero nadie me colaboro

1 Answers1

0
#include<iostream>
using namespace std;
int main()
{
    int i, j,nota[4][5];
    int calificacion, cont=0, contt = 0,max=0;

    for (i = 0; i < 4; i++)//Turno
    {
        cout << "Turno " << i + 1 << endl;
        for (j = 0; j < 5; j++)//Operario por turno i
        {
            cout << "Operario " << j + 1 << "\tDigite la calificacion : ";
            cin >> nota[i][j];
            if (nota[i][j] >= 6)
            {
                cont++;
            }

            if (cont == 5)
            {
                contt++;
            }

        }
        //Desde aqui en adelante 'j' siempre vale 5 porque
        //esta fuera del for y se queda con el ultimo valor
        if (contt > 0)
        {
            //¿porque se cambia la nota por el turno?
            max = i+1;
            nota[i][j] = 0;   // <-- j = 5, linea inútil, abajo se cambia
            nota[i][j] = max; // <-- j = 5

        }
        max = 0;
        cont= 0;
    }
    for (i = 0; i <contt; i++)
    {
        cout << " Turno todas notas aprovativas :  " << nota[i][j]; // <-- j = 5
        cout << endl;
    }
    return 0;
}

Con respecto al using namespace lee esto: ¿Por qué el usar "using namespace std;" se considera mala práctica?

Si entendí bien, seria así:

#include <iostream>

int main()
{
    int nota[4][5];
    bool resultados[4];
    int contador_aprobados=0, contador_turnos=0;//Usa nombre de variables descriptivos

    //Si declaras la variable dentro del for,
    //el compilador te avisara cuando intentes usarla afuera.
    for (int i = 0; i < 4; i++)
    {
        std::cout << "Turno " << i + 1 << std::endl;
        for (int j = 0; j < 5; j++)
        {
            std::cout << "Operario " << j + 1 << "\tDigite la calificacion : ";
            std::cin >> nota[i][j];
            if (nota[i][j] >= 6)
            {
                contador_aprobados++;
            }
        }
        if (contador_aprobados == 5)
        {
            resultados[i] = true;
            contador_turnos++;
        }
        else
        {
            resultados[i] = false;
        }
        contador_aprobados = 0;
    }
    std::cout << "En " << contador_turnos << " turnos todas las notas aprobadas." << std::endl;
    for (int i = 0; i < 4; i++)//Esta es otra i, es declarada nuevamente
    {
        if(resultados[i])
            std::cout << "\tTurno todas notas aprobadas:  Turno " << i+1 << std::endl;
    }

    return 0;
}