Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2010, 19:32   #1
JokerWCC
Пользователь
 
Регистрация: 10.10.2010
Сообщений: 18
По умолчанию Двумерный массив

Здравствуйте!
Моя первая программа C++, так что все получилось как-то по Pascal-евски)), без указателей и т.д.
Помогите пожалуйста найти ошибку. Задание в первом комментарии. Суть проблемы - неправильный результат.

Собственно программа:

//Задача: Определить сколько элементов двумерного массива меньше любого элемента на главной диагонали

Код:
#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
#include <stdlib.h>
//---------------------------------------------------------------------------

#pragma argsused
int main(void)
{
        int n;
        cin >> n;
        int i,j,s;
        s=0;
        int mas[10][10];
//Делаю начальный массив.... для простоты ввел n=2,3
        for (i=0; i<n; i++)
      { for (j=0; j<n; j++)
        {mas[i][j]=random(10);
        }
        }
        int min;
        int kar[10];
//В массив kar собираю главную диагональ начального массива
        for (i=0; i<n; i++)
      { for (j=0; j<n; j++)
        {if (i==j) kar[i]=mas[i][j];
        }
        }
        min=kar[0];
//Нахожу самый большой элемент массива kar
        for (i=0; i<n; i++);
        {if (min>kar[i]) min=kar[i];
        }
//Вывел kar, чтоб проверить..... таких чисел нет в начальном массиве
         for (i=0; i<n; i++);
        { cout << kar[i];
        }
        cout << "\n";
//Нахожу результат.... но получается, что самый большой элемент больше всех остальных элементов (включая себя))       
        for (i=0; i<n; i++)
      { for (j=0; j<n; j++)
        {if (mas[i][j]<min) s=s+1;
        }
        }
        for (i=0; i<n; i++)
      { for (j=0; j<n; j++)
        {cout << mas[i][j];
        }
        }
        cout << "\n";
        cout <<s;
        cout << "\n";
        system("pause");
        return 0;
}
//-----------------------

Заранее спасибо.

Последний раз редактировалось JokerWCC; 10.10.2010 в 20:09. Причина: подправил, но проблема все же осталась
JokerWCC вне форума Ответить с цитированием
Старый 10.10.2010, 19:46   #2
q_proger
Пользователь
 
Регистрация: 10.10.2010
Сообщений: 48
По умолчанию

Меньше любого это как? Меньше наибольшего?
q_proger вне форума Ответить с цитированием
Старый 10.10.2010, 19:56   #3
JokerWCC
Пользователь
 
Регистрация: 10.10.2010
Сообщений: 18
По умолчанию

Да, прогнал.... меньше наименьшего должно быть) поменял, но результат все равно карявый(( там проблема в том, что в массиве kar вообще какие-то левые числа получаются.....
JokerWCC вне форума Ответить с цитированием
Старый 10.10.2010, 20:01   #4
q_proger
Пользователь
 
Регистрация: 10.10.2010
Сообщений: 48
По умолчанию

Код:
int main()
{
int n;
cin >> n;
int i,j,s;
s=0;
int ** mas = new int*[n];
for (int i = 0; i < n; i++) mas[i] = new int[n];
randomize();
for (i=0; i<n; i++)
{ for (j=0; j<n; j++)
{mas[i][j]=random(10);
}
}
int max;
int kar = new int[n];
for (i=0; i<n; i++)
{ for (j=0; j<n; j++)
{if (i==j) kar[i]=mas[i][j];
}
}
max=kar[0];
for (i=0; i<n; i++)
{if (max>kar[i]) max=kar[i];
}
for (i=0; i<n; i++)
{ cout << kar[i];
}
cout << "\n";
for (i=0; i<n; i++)
{ for (j=0; j<n; j++)
{if (mas[i][j]<max) s=s+1;
}
}
for (i=0; i<n; i++)
{ for (j=0; j<n; j++)
{cout << mas[i][j];
}
}
cout << "\n";
cout <<s;
cout << "\n";
system("pause");

for (int i = 0; i < n; i++) delete [] mas[i];
delete [] mas;
delete [] kar;

return 0;
}

Последний раз редактировалось q_proger; 10.10.2010 в 20:09.
q_proger вне форума Ответить с цитированием
Старый 10.10.2010, 20:03   #5
q_proger
Пользователь
 
Регистрация: 10.10.2010
Сообщений: 48
По умолчанию

Массивы просто для красоты по-другому сделал, чтобы объявлять только нужное кол-во элементов, а косяки вроде были только в том, что ";" после for стояли.
q_proger вне форума Ответить с цитированием
Старый 10.10.2010, 20:10   #6
JokerWCC
Пользователь
 
Регистрация: 10.10.2010
Сообщений: 18
По умолчанию

Спасибо))) Все заработало, выдает правильный результат..... и за нормальную запись массивов тоже спс..... а то я в указателях не особо разобрался.....
JokerWCC вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерный массив.. uropb992 Помощь студентам 6 23.10.2010 01:40
C++. Двумерный массив Trinity13 Помощь студентам 1 01.04.2010 12:31
Двумерный массив Бибик Помощь студентам 18 06.01.2010 15:31
Двумерный Массив n01R Помощь студентам 9 19.12.2009 16:41
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40