2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу 1, 2  След.
 
 С++ массивы. Хелп ми плиз!
Сообщение24.12.2008, 19:04 
помогите решить задачку....
Дан массив размером nxn, элементы которого целые числа. Подсчитать сумму элементов каждой строки и записать данные в новый массив. Найти максимальный элемент нового массива.

 
 
 
 
Сообщение24.12.2008, 19:14 
То есть оба массива заданы статически и найденный элемент необходимо распечатать? Так организуйте двойной вложенный цикл (внешний по первому индексу двумерного массива, внутренний, соответственно, по второму).
Внутренний цикл используйте для подсчета суммы элементов, а во внешнем цикле записывайте полученную сумму в новый массив с одновременным анализом на максимальный элемент. После этого остается только распечатать...

 
 
 
 
Сообщение24.12.2008, 19:19 
:?

 
 
 
 
Сообщение24.12.2008, 19:27 
Как понимать вашу реакцию?

 
 
 
 
Сообщение24.12.2008, 19:30 
да я новичок совсем до темы массивы не дощла ещё, а решить нужно срочно
:oops:

 
 
 
 
Сообщение24.12.2008, 19:30 
А про циклы что-то знаете: for?

 
 
 
 
Сообщение24.12.2008, 19:33 
циклы простенькие знаю

 
 
 
 
Сообщение24.12.2008, 19:43 
Попробуйте набросать хотя-бы что-то по программе, а потом
вместе посмотрим - скажем, часа через 2. На самом деле, программа довольно простая и вам по силам...

 
 
 
 
Сообщение24.12.2008, 20:01 
int a[n,n];
int b[n];

for(int i=0;i<n;i++)
for (int j=0;j<n;j++)
b[i]+=a[i,j];

int max=0;
for(int i=0;i<n;i++)
if(max<b[i])
max=b[i];

 
 
 
 
Сообщение24.12.2008, 20:09 
Посмотрите по описанию, как объявляются двумерные массивы (у вас неверно) и как они инициализируются.

И где вообще нормальное оформление программы с учетом функции main - смотрите документацию...

И что такое n - где ее описание?

 
 
 
 
Сообщение24.12.2008, 23:05 
верно?
Код:
#include <iostream>
using namespace std;

int main()
{
int a[n][n];
int b[n];
int n;
cout<<"Введите n:=";
cin>>n;
for(int i=0; i<n; i++)
for (int j=0; j<n; j++)
b[i]+=a[i,j];
}
int max=0;
{for(int i=0; i<n; i++)
if(max<b[i])
max=b[i];
cin.get();
return 0;
}

 
 
 
 
Сообщение25.12.2008, 03:01 
А где объявлено n? Не ниже ли, чем следует?
Компилятору подсунуть текст вы пробуете, он ведь ругаться будет?
Наличие двух фигурных скобок внутри непонятно.

 
 
 
 
Сообщение25.12.2008, 08:06 
Если массивы у вас статические, их размерность определите константным выражением, а не вводите эту размерность с пульта. Скажем так:

const int n = 10;
...

int a[n][n] = {...}, b[n];

И про инициализацию вы забыли - речь идет о данных внутри фигурных скобок.

Кроме того, эти массивы должны быть глобальными, или у вас в задании они локальные? Тогда не забывайте о мусоре,
который содержится в массиве 'b' - он точно будет ненулевой.

 
 
 
 
Сообщение25.12.2008, 21:53 
хм, вроде так. смотрю - что-то знакомое. с первого курса такая задачка валяется.
Код:
#include <iostream>
using namespace std;
int main()
{
int n;
int A[50][50];
int B[50];
int i=0,j=0;
cout << "Enter n= "<< endl;
cin >> n;
cout << " Enter matrix A[n][n] = "<< endl;
for(i=0;i<n;i++)
    for(j=0;j<n;j++)
   cin >> A[i][j];

cout << "\n matrix A[n][n] = "<< endl;
for(i=0;i<n;i++)
{
   for(j=0;j<n;j++)
   cout << A[i][j]<< "\t ";
cout << endl;
}

int temp=0,max;
for(i=0;i<n;i++)
{
if(i==0) max=B[i];
temp=0;
   for(j=0;j<n;j++)
   {
   temp=temp+A[i][j];
   }
B[i]=temp;
if(B[i]>max) max=B[i];
}

cout << " B[i] = "<< endl;
for(i=0;i<n;i++)
   cout << B[i] << endl;

cout << " max = "<<max;
return 0;
}

 
 
 
 
Сообщение26.12.2008, 08:37 
"apatic", а вы проверяли этот код хотя бы для крайнего случая, когда n == 1? Тогда бы сразу обнаружили дефекты в своей программе.

В очередной раз, рискуя нарваться на апологетов программирования в стиле "Наскоряк написанная функция не обязана быть оформлена по всем канонам", могу высказать только свою зависть ветке "Математика" данного форума, где за гораздо меньшие прегрешения в написании формул и индексов авторам сообщения обещают карантин (это по поводу стиля оформления кода).

 
 
 [ Сообщений: 30 ]  На страницу 1, 2  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group