Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 11.10.2012, 19:31   #1 (permalink)
Андрей Романюк
Member
 
Регистрация: 13.05.2011
Сообщений: 49
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Двумерный массив в C++

ЗАДАЧА:
Заполнить двумерный числовой массив В(4, 6) целыми числами. Найти первый положительный элемент массива и номер строки и столбца, где он находится. Затем найти и вывести на экран максимальные элементы каждой строки массива.
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
void main()
{
int const n=4,b=6;
int i,j, Array[n][b];
int max;

clrscr();

randomize();

for (i=0; i<n; i++)
{
printf("\n");
printf(" ----------------------------------\n");
for (j=0;j<b;j++)
{
Array[i][j]= -10+int(20*float(random(n))/float(n-1));

printf("%4.1d |", Array[i][j]);
}
}
printf("\n ----------------------------------\n");
for (i=0; i<n; i++)
{
for (j=0;j<b;j++)
{
if (Array[i][j]>0)
{
printf("\n%i-stroka",i+1);
printf("\n%i-stolbec",j+1);

}
break;
}

}
max=Array[0][0];
/* for (i=0; i<n; i++)
{ */
for (j=0;j<b;j++)
{ 
if (max<Array[i][j])
{
max=Array[i][j];
}
else
max=max;
}
//}
printf("\n max%i ",max);
getch();
}
ввел массив, а получить "координаты" именно первого положительного элемента не могу( получается либо в первом столбце все "+", либо в строке все"+"....и с мах та же проблема...как работать именно с отдельной строкой или столбцом?
Андрей Романюк вне форума   Ответить с цитированием

Старый 11.10.2012, 19:31
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Информативные темы по вашему запросу

Двумерный массив
Паскаль. Двумерный массив
Двумерный массив
В Паскале двумерный массив
Двумерный массив
Двумерный массив. Задача

Старый 12.10.2012, 07:39   #2 (permalink)
Fenix
404
 
Аватар для Fenix
 
Регистрация: 10.01.2010
Сообщений: 1,749
Записей в дневнике: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 3868
По умолчанию

Ну во-первых
max=max; - вообще убило.
Компилятор Dev-Cpp
Код:
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
#define N 4
#define B 6

int main()
{
 int i,
     j,
     Array[N][B];
 int max; 

 //заполнение
 for (i=0;i<N;i++)
 {
  printf("\n ----------------------------------\n");
  for (j=0;j<B;j++)
  {
   Array[i][j]= -10+rand()%20;
   printf("%4d |", Array[i][j]);
  }
 }

 //нахождение максимальных
 printf("\n ----------------------------------\n");
 for (i=0;i<N;i++)
 {
  max=Array[i][0];
  for (j=0;j<6;j++)
  {
   if(Array[i][j]>max)
    max=Array[i][j];
  }
  printf("\nmax in %d-row: %d",i+1,max);
 }

 //первый положительный
 int pos=0;
 for(i=0;i<N;i++)
 {
  for(j=0;j<B;j++)
   if (Array[i][j]>0)
   {
    printf("\n1-st positive element: %d (%d-row; %d-col)",Array[i][j],i+1,j+1);
    pos=1;
    break;
   }
  if(pos==1) 
   break;
 }       

getch();
}
При желании поиск максимальных можно внести в цикл заполнения.
Для целочисленных не надо писать %3.1d, так как часть .1 - не имеет смысла.
Собственно, код рабочий, но "на скорую руку".
Fenix вне форума   Ответить с цитированием
Старый 13.10.2012, 21:25   #3 (permalink)
Андрей Романюк
Member
 
Регистрация: 13.05.2011
Сообщений: 49
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

спасибо большое)
Андрей Романюк вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 13:37.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.