Помогите с задачей, пожалуйста. Найти в матрице строку с минимальной суммой

Напишите программу, которая находит в матрице строку с минимальной суммой. Если таких строк несколько, найдите первую такую строку.

#include <iostream>
using namespace std;
int main() {
  int n, m;
  int arr[100][100];
  cin >> n >> m;
  for (int i = 0; i < n; i++) {
    int sum = 0;
    for (int j = 0; j < m; j++) {
      cin >> arr[i][j];
      sum += arr[i][j];
    }
  }

Дальше ничего не приходит на ум((

Так а чего тут думать, гуглите как найти мин или макс значение в массиве, и тут аналогично, только значение — это сумма строки (то есть после внутреннего цикла проверять).

#include <iostream>
using namespace std;
int main() {
  int n, m, min= 10000000;
  int arr[100][100], imin =0;
  cin >> n >> m;
  for (int i = 0; i < n; i++) {
    int sum = 0;
    for (int j = 0; j < m; j++) {
      cin >> arr[i][j];
      sum += arr[i][j];
    }
    if(sum < min)
      min = sum;
    imin = i;
  }

Так?

Эта строка всегда выполнится независимо от результата проверки выше.

Строку:

cin >> arr[i][j];

Лучше заменить на

a[i][j] = rand() % 999 + 1;

Ивините, но дальше я не могу додумать.

Так а чего тут думать, надо просто разобраться как работают { }.

С | Условные конструкции

Как бы так получилось:

Код
#include <iostream>
#include <iomanip>
#include <ctime>

int main()
{
    int n, m, sum, minsum, imin = 0;
    std::cout << "Enter N" << std::endl;
    std::cin >> n;
    std::cout << "Enter M" << std::endl;
    std::cin >> m;
    std::cout << std::endl;
    std::cout << "Input" << std::endl;
    srand((int)time(0));
    int** a = new int*[n];
    for (int i = 0; i < n; i++)
        a[i] = new int[m];

    for (int i = 0; i < n; i++)
    {
        sum = 0.0;
        for (int j = 0; j < m; j++)
        {
            a[i][j] = rand() % 999 + 1;
            sum += a[i][j];
            std::cout << std::setw(3) << a[i][j] << " ";
        }
        std::cout << " Sum = " << sum << " ";
        if (i == 0 || sum < minsum)
        {
            minsum = sum;
            imin = i;
        }
        std::cout << std::endl;
    }
    std::cout << std::endl;
    std::cout << "Output" << std::endl;
    for (int j = 0; j < m; j++)
    {
        std::cout << std::setw(3) << a[imin][j] << " ";
    }
    std::cout << " MinSum = " << minsum;
    
return 0;
}
#include <iostream>
using namespace std;
int main() {
  int n, m, min= 10000000;
  int arr[100][100], imin;
  cin >> n >> m;
 

  for (int i = 0; i < n; i++) {
    int sum = 0;
    for (int j = 0; j < m; j++) {
      cin >> arr[i][j];
      sum += arr[i][j];
    }
  
    if(sum < min)
    min = sum;
    imin = i;
}  
      for (int j = 0; j < m; j++)
    
        cout  << arr[imin][j] << " ";
    
}

Добрый день, что здесь нужно исправить ?

Так исправлено ж выше уже.

Но вообще

Похоже автор не знает как спойлером пользоваться.
grom32, вот здесь нужно жмакнуть по слову Код, спойлер и откроется ))
Посмотрите реализацию и на фигурные скобки внимание обратите, это как блоки begin и end в Pascal. В Си определяются фигурными скобками.