Ho provato con i primi 2 punti( , non vi strappate i capelli per gli errori !
#include <stdio.h>
#include <stdlib.h>
int main (){
int i , j , m[j] ,max , min, n;
i=1;
for (i=1 ; i<=50 ; i++){
if (i==50) max = i;
else if (i<50) min = i;
do{ printf ("inserisci un valore:");
scanf ("%d" , &n);
if (n==max) || (i == n*-1) break;
i++;
m=n;}
while (i<50)
ho inzializzato il valore della riga i a 1 poi cercato di fare in modo di dire al programma che ho il numero massimo di righe a 50 e minimo al di sotto di quel numero , quindi inserisco i valori che continuano ad "aumentare" fino a quando non arrivo al valore massimo della riga dove si interrompe (anche nel caso in cui il valore sia negativo) , spero di non aver scritto troppe cavolate