@MrFlatman
Студент

Заполнить двумерный массив рандомными числами и вывести их сумму?

Привет всем, на куролесил я тут с "программой". Задача стояла так: дан двумерный массив 3х3, заполнить его через рандом и посчитать сумму всех элементов массива. Я что-то написал, но оно на мой взгляд работает не правильно. Подскажите, пожалуйста, где допущена ошибка?

#include "stdafx.h"
#include "stdlib.h"
#include "time.h"
#include "iostream"
#include "conio.h"
#include "ctime"
using namespace std;


void 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] = 0 + rand();
            sum = sum + mas[i][j];

        }
    }

    cout << mas[i][j] << endl;
    cout << sum << endl;
    _getch();

}
  • Вопрос задан
  • 7378 просмотров
Пригласить эксперта
Ответы на вопрос 2
15432
@15432
Системный программист ^_^
неправильно вот это
cout << mas[i][j] << endl;

его нужно вставить внутрь цикла по j

в остальном выглядит норм.
не очень понятно, для чего прибавлять 0
Ответ написан
avsej
@avsej
Программист в Couchbase
Если ты про то, что могут выводиться отрицательные суммы, так это из-за переполнения, когда 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


Я что-то написал, но оно на мой взгляд работает не правильно

А вообще неплохо-бы писать что именно работает неправильно в вопросе. Тут же не экстрасенсы
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы