Finding the count of negative sub-arrays for a given array
Simplifications

If you look at your main loop:


    int sum = 0, count = 0;;
    for(int i = 0; i &lt; T; i++){
         sum = 0;
         sum += arr[i];// If the number itself is negative count++
          if(sum &lt; 0){
                count++;
            }
        for(int j = i + 1; j &lt; T; j++){
            sum += arr[j];
            if(sum &lt; 0){// If the most recent sum is -ve, count++
                count++;
            }
        }
    }



you can see that there are two blocks of code that do the same thing.  You can remove one block by noticing that starting the j loop at i instead of i+1 will do the initial check of the number itself.  Another thing you could do is move the int sum declaration inside the for loop.  So the final result would look like this:

    int count = 0;
    for (int i = 0; i &lt; T; i++) {
        int sum = 0;
        for (int j = i; j &lt; T; j++) {
            sum += arr[j];
            if (sum &lt; 0) {// If the most recent sum is -ve, count++
                count++;
            }
        }
    }


Complexity

As far as your complexity question, I don't believe that you can solve this problem with better than an \$O(n^2)\$ solution, so your two loops seem fine.