Если ты про то, что могут выводиться отрицательные суммы, так это из-за переполнения, когда
rand()
генерит большие числа. Для красоты можно генерировать числа до ста, например.
#include <iostream>
using namespace std;
int main()
{
int mas[3][3];
int i, j, sum;
srand(time(NULL));
sum = 0;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
mas[i][j] = rand() % 100;
sum = sum + mas[i][j];
cout << mas[i][j] << "\t";
}
cout << endl;
}
cout << "sum: " << sum << endl;
cin.get();
}
При запуске выведет, что-то типа этого
$ g++ -pedantic -Wall -Wextra test.c
$ ./a.out
97 40 3
32 81 26
30 15 6
sum: 330
Я что-то написал, но оно на мой взгляд работает не правильно
А вообще неплохо-бы писать что именно работает неправильно в вопросе. Тут же не экстрасенсы