Подскажите, дорогие форумчане, короче имеется такое задание:
Дан двумерный массив размерностью 10x10 ,
* посчитать среднее арифметическое элементов,
* расположенных на главной диагонали и произведение
* элементов побочной диагонали,
* и определить разницу между средним арифметическим и произведением.по очереди вводить все 100 чсел неудобно, поэтому использовал рандом...ну и вот мое решение этой задачи
#include <stdlib.h>
#include <iostream>
#include <time.h>
using namespace std;
int main()
{int sredn = 0;
int sredn_count = 0;
int mult = 1;
const int size = 10;
int array[10][10];
srand(time(NULL));
for(int i = 0; i < size; i++)
for(int j = 0; j < size; j++)
array[j] = rand()%10;
cout << "Наша матрица:" << endl;
for(int i = 0; i < size; i++)
for(int j = 0; j < size; j++)
cout <<array[j] << " ";
for (int i = 0;i<size;i++)
{
for (int j = 0;j<size;j++)
{
if (i == j)
{
sredn += array[j];
sredn_count ++;
}
}
}
int t = size-1;
for (int i = 0;i<size;i++)
{
if (t > 0)
{
mult*= array[t];
t--;
}
}
sredn = sredn / sredn_count;
if (sredn >mult)
{
cout<<"Среднее арифметическое элементов, расположеных на главной диагонали, больше! ";
}
else cout<<"Произведение элементов, расположеных на побочной диагонали, больше!";
cout<<endl;
cout<<sredn<<" и "<<mult;
return 0;
}
но числа выводятся все через пробел...на матрицу не похоже, в паскале использовал writeln, а как тут сделать норм вывод матрицы? Спасибо...
Пользователь решил продолжить мысль 02 Февраля 2012, 09:49:55:
кста, с++ =)
Пользователь решил продолжить мысль 02 Февраля 2012, 10:07:14:
додумался ггг
, ну я и ... endl - перенос на новую строку
#include <stdlib.h>
#include <iostream>
#include <time.h>
using namespace std;
int main()
{int sredn = 0;
int sredn_count = 0;
int mult = 1;
const int size = 10;
int array[10][10];
srand(time(NULL));
for(int i = 0; i < size; i++)
for(int j = 0; j < size; j++)
array[j] = rand()%10;
cout << "Наша матрица:" << endl;
for(int i = 0; i < size; i++)
{for(int j = 0; j < size; j++)
cout <<array[j] << " ";
cout << endl;}
for (int i = 0;i<size;i++)
{
for (int j = 0;j<size;j++)
{
if (i == j)
{
sredn += array[j];
sredn_count ++;
}
}
}
int t = size-1;
for (int i = 0;i<size;i++)
{
if (t > 0)
{
mult*= array[t];
t--;
}
}
sredn = sredn / sredn_count;
if (sredn >mult)
{
cout<<"Среднее арифметическое элементов, расположеных на главной диагонали, больше! ";
}
else cout<<"Произведение элементов, расположеных на побочной диагонали, больше!";
cout<<endl;
cout<<sredn<<" и "<<mult;
return 0;
}
Пользователь решил продолжить мысль 02 Февраля 2012, 12:13:02:
кстати, не подскажете, как задать нижнюю границу выбираемых чисел? rand()%10 - это от 0 до 10...при рандомном ноле у меня там при умножении в большинстве случаев получается ноль...установить нижнюю границу равно 1 как?