2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 С++ массивы. Хелп ми плиз!
Сообщение24.12.2008, 19:04 


24/12/08
6
помогите решить задачку....
Дан массив размером nxn, элементы которого целые числа. Подсчитать сумму элементов каждой строки и записать данные в новый массив. Найти максимальный элемент нового массива.

 Профиль  
                  
 
 
Сообщение24.12.2008, 19:14 


27/11/05
183
Северодонецк
То есть оба массива заданы статически и найденный элемент необходимо распечатать? Так организуйте двойной вложенный цикл (внешний по первому индексу двумерного массива, внутренний, соответственно, по второму).
Внутренний цикл используйте для подсчета суммы элементов, а во внешнем цикле записывайте полученную сумму в новый массив с одновременным анализом на максимальный элемент. После этого остается только распечатать...

 Профиль  
                  
 
 
Сообщение24.12.2008, 19:19 


24/12/08
6
:?

 Профиль  
                  
 
 
Сообщение24.12.2008, 19:27 


27/11/05
183
Северодонецк
Как понимать вашу реакцию?

 Профиль  
                  
 
 
Сообщение24.12.2008, 19:30 


24/12/08
6
да я новичок совсем до темы массивы не дощла ещё, а решить нужно срочно
:oops:

 Профиль  
                  
 
 
Сообщение24.12.2008, 19:30 


27/11/05
183
Северодонецк
А про циклы что-то знаете: for?

 Профиль  
                  
 
 
Сообщение24.12.2008, 19:33 


24/12/08
6
циклы простенькие знаю

 Профиль  
                  
 
 
Сообщение24.12.2008, 19:43 


27/11/05
183
Северодонецк
Попробуйте набросать хотя-бы что-то по программе, а потом
вместе посмотрим - скажем, часа через 2. На самом деле, программа довольно простая и вам по силам...

 Профиль  
                  
 
 
Сообщение24.12.2008, 20:01 


24/12/08
6
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 


27/11/05
183
Северодонецк
Посмотрите по описанию, как объявляются двумерные массивы (у вас неверно) и как они инициализируются.

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

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

 Профиль  
                  
 
 
Сообщение24.12.2008, 23:05 


24/12/08
6
верно?
Код:
#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 


03/10/06
826
А где объявлено n? Не ниже ли, чем следует?
Компилятору подсунуть текст вы пробуете, он ведь ругаться будет?
Наличие двух фигурных скобок внутри непонятно.

 Профиль  
                  
 
 
Сообщение25.12.2008, 08:06 


27/11/05
183
Северодонецк
Если массивы у вас статические, их размерность определите константным выражением, а не вводите эту размерность с пульта. Скажем так:

const int n = 10;
...

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

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

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

 Профиль  
                  
 
 
Сообщение25.12.2008, 21:53 


20/10/08
28
хм, вроде так. смотрю - что-то знакомое. с первого курса такая задачка валяется.
Код:
#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 


27/11/05
183
Северодонецк
"apatic", а вы проверяли этот код хотя бы для крайнего случая, когда n == 1? Тогда бы сразу обнаружили дефекты в своей программе.

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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу 1, 2  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group