Originariamente inviato da Dav3i
La parte di codice che in rosso penso sia giusta (dovrebbe essere abbastanza immediato a cosa serva).
Secondo me c'eri molto vicino. Una soluzione abbastanza generica potrebbe essere la seguente (evito di ripetere tutto il codice):

codice:
char car[] = "+-*/.....";

for (riga = 0; riga < totdisp; riga++)
{
    a = riga;
    for (col = 0; col < n; col++)
    {
        printf("%c", car[a % N]);
        a /= N;
    }
    printf("\n");
}
Invece una soluzione semplificata/ottimizzata valida solo per N = 2 (cioè il quesito originario):

codice:
for (riga = 0; riga < totdisp; riga++)
{
    for (col = 0; col < n; col++)
    {
        if (riga & (1 << col))
            printf("+");
        else
            printf("-");
    }
    printf("\n");
}
HTH,