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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2010, 16:30   #1
anybkarnak
Пользователь
 
Аватар для anybkarnak
 
Регистрация: 27.11.2009
Сообщений: 12
По умолчанию нужно организовать динамическое выделение памяти через ** и файловый ввод - вывод

Код:
Вариант 1
Дана целочисленная прямоугольная матрица. Определить:
1)  количество строк, не содержащих ни одного нулевого элемента;
2)  максимальное из чисел, встречающихся в заданной матрице более одного раза.

#include <iostream>
#include <new>
using namespace std;
int main()
{
int sizei,sizej,k=0,**mas;
cout<<"plz, enter your size M-> "<<endl;
cout<<"stpok-> ";
cin>>sizei;
cout<<"ctolbov-> ";
cin>>sizej;
mas=new int*[sizei];
for(int i=0;i<sizei;i++)
mas[i]=new int[sizej];
cout<<"3anolnute: "<<endl;
for(i=0;i<sizei;i++)
for(int j=0;j<sizej;j++)
cin>>mas[i][j];
	//1
for(i=0;i<sizei;i++)
{
for(int j=0;j<sizej;j++)
{
if(mas[i][j]==0)
{k--;break;}}
k++;}
cout<<"kol-vo stpok bez 0-> "<<k<<endl;
	//2
int max, l=0, maxi, maxj;
max=mas[0][0];
while(l!=sizei*sizej)
{for(i=0;i<sizei;i++)
{
for(int j=0;j<sizej;j++)
{if(max<mas[i][j])
{max=mas[i][j]; maxi=i; maxj=j;
}}}
mas[maxi][maxj]=NULL;
for(i=0;i<sizei;i++)
{
for(int j=0;j<sizej;j++)
{
if(mas[i][j]==max)
{cout<<"max 3na4enue, novtop>1 pa3a->  "<<max<<endl;
goto label;}
}}
max=0; l++;
}
cout<<"error!net 3na4enu9!"<<endl;
label:
for(i=0;i<sizei;i++)
free(mas[i]);
free(mas);
return 0;
}
anybkarnak вне форума Ответить с цитированием
Старый 11.06.2010, 16:42   #2
dxdy
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 78
По умолчанию

Код:
for(i = 0; i < sizei; i++){
		for(int j=0; j < sizej; j++){
			if(mas[i][j]==0){
				k--; break;
			}
		}
		k++;
	}
В данном коде ты считаешь сколько строчек без нулей, но почему у тебя так странно счетчик k работает, который у тебя в программе изначально инициализирован на 0
Я не волшебник, я еще только учусь ٩(๏̯͡๏)۶
dxdy вне форума Ответить с цитированием
Старый 11.06.2010, 20:35   #3
anybkarnak
Пользователь
 
Аватар для anybkarnak
 
Регистрация: 27.11.2009
Сообщений: 12
По умолчанию

Уважаемый dxdy, если бы Вы повнимательней вчитались в код, вы бы поняли, что внешний К считает сколько всего строчек, а внутренний(который в ифе) - отнимает те строчки, что с нулями, вот так мы и получим нужное количество строк
anybkarnak вне форума Ответить с цитированием
Старый 11.06.2010, 21:00   #4
dxdy
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 78
По умолчанию

anybkarnak вы же изначально знаете количество строк? Количество строк хранится в переменной sizei; Тогда вам бы не пришлось второй раз считать количество строк. Извините, это всего лишь мое замечание.
Я не волшебник, я еще только учусь ٩(๏̯͡๏)۶
dxdy вне форума Ответить с цитированием
Старый 11.06.2010, 21:33   #5
anybkarnak
Пользователь
 
Аватар для anybkarnak
 
Регистрация: 27.11.2009
Сообщений: 12
По умолчанию

просто подумал, что так считать было бы лучше(через Ж*)=)))
anybkarnak вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое выделение памяти, как лучше? Пепел Феникса Общие вопросы по программированию, компьютерный форум 10 11.03.2010 09:44
Динамическое выделение памяти под массивы Артем125 Общие вопросы C/C++ 4 07.04.2009 09:52
Динамическое выделение памяти FW-TOT Общие вопросы C/C++ 2 19.12.2008 00:42
файловый ввод/вывод kot111 Общие вопросы C/C++ 1 04.02.2008 17:45