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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2009, 01:24   #11
bars1984
Пользователь
 
Регистрация: 10.05.2009
Сообщений: 32
По умолчанию

прверить все ли столбцы матрицы содержат хотя бы один положительный элемент, если нет, то в первом столбце, не удовлетворяющем условию, заменить отрицательные элементы их модулями

как проверить столбец на наличие положительных элементов
как заменить отрицательное число его модулем
bars1984 вне форума Ответить с цитированием
Старый 12.05.2009, 01:29   #12
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
как проверить столбец на наличие положительных элементов
Можно завести некую переменную-флаг. Она будет говорить о том, есть ли в столбце положительный элемент.
Изначально флаг не установлен (false), то есть считаем, что таких элементов нет. Проходим по столбцу. Если текущий элемент положительный, то устанавливаем флаг в true.
Вот и все.

А можно просто посчитать количество положительных элементов в столбце. Если их >0, то они там явно есть
Цитата:
как заменить отрицательное число его модулем
Действительно не знаете?
Код:
A := abs(A);
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 13.05.2009, 01:09   #13
bars1984
Пользователь
 
Регистрация: 10.05.2009
Сообщений: 32
По умолчанию

прверить все ли столбцы матрицы содержат хотя бы один положительный элемент, если нет, то в первом столбце, не удовлетворяющем условию, заменить отрицательные элементы их модулями

#include <stdio.h>

int main()
{
int n, m, i, j, a[20][20];

printf("Enter n:\n");
scanf("%d", &n);

printf("Enter m:\n");
scanf("%d", &m);

for (i=0;i<n;i++){
for(j=0;j<m;j++)
scanf("%d", &a[i][j]);
}
как продолжить программу?
bars1984 вне форума Ответить с цитированием
Старый 13.05.2009, 01:12   #14
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от bars1984
как продолжить программу?
Это шутка? Вы написали только ввод данных.
Делайте, как я написал в посте выше.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 13.05.2009, 23:02   #15
bars1984
Пользователь
 
Регистрация: 10.05.2009
Сообщений: 32
По умолчанию

определить максим. элемент и его позицию в каждой строке матрицы вещественных чисел.Конкретные размеры и элементы ввести с экрана.Память под матрицу выделить динамически.


написала программу, но не получается выделить динамическую память


#include <stdio.h>

int main()
{
double i, j, max;
double *z, n, m;

printf("Enter n:\n");
scanf("%ld", &n);

printf("Enter m:\n");
scanf("%ld", &m);

z = new double[n];
z= new double[m];

for(i=0;i<n;i++){
for(j=0;j<m;j++)
scanf("%ld", &a[i][j]);
}

max=a[i][j];
for(i=0, j=0;j<m;j++){
if(a[i][j]> max)
max=a[i][j];
}

printf("stroka stolbez element\n");
printf(" %ld %ld %ld\n",i, j, max);

delete[](z);
delete[]z;

return 0;
}
bars1984 вне форума Ответить с цитированием
Старый 13.05.2009, 23:51   #16
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
#include <stdio.h>
#include <conio.h>

int main()
{
int i, j, maxi,maxj,n,m;
double **z;

printf("Enter n:\n");
scanf("%d", &n);

printf("Enter m:\n");
scanf("%d", &m);

z = new double*[n];
for(i=0; i<n; i++)
 z[i] = new double[m];

for(i=0;i<n;i++)
{
 for(j=0;j<m;j++)
  scanf("%lf", &z[i][j]);
}

maxi = 0;
maxj = 0;
for(i=0;i<n;i++)
 for(j=0; j<m; j++)
  if(z[i][j]> z[maxi][maxj])
   {
    maxi = i;
    maxj = j;
   }

printf("stroka stolbez element\n");
printf(" %d %d %lf\n",maxi, maxj, z[maxi][maxj]);

for(i=0; i<n; i++)
 delete[] z[i];
delete[] z;

getch();
return 0;
}
Программа ищет максимум в матрице (исправил ваш вариант).
Но по условию нужно найти максимумы в каждой строке.
Думаю, вы это сможете исправить.

Память вы выделяете неверно. Собственно, посмотрите как надо.

----------
ps И код заключайте в теги CODE ("#" на панели в окне редактирования).
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 14.05.2009, 00:16   #17
bars1984
Пользователь
 
Регистрация: 10.05.2009
Сообщений: 32
По умолчанию

как найти элементы выше главной диагонали матрицы?
bars1984 вне форума Ответить с цитированием
Старый 14.05.2009, 00:33   #18
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
как найти элементы выше главной диагонали матрицы?
Вот цикл, который их перебирает.
Код:
for(i=0; i<N; i++)
 for(j=i+1; j<N; j++)
  A[i][j] - элемент над главной диагональю
Еще так: элемент находится над главной диагональю, если его индекс i (номер строки) < j (номер столбца).
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 14.05.2009, 23:01   #19
bars1984
Пользователь
 
Регистрация: 10.05.2009
Сообщений: 32
По умолчанию

прверить все ли столбцы матрицы содержат хотя бы один положительный элемент, если нет, то в первом столбце, не удовлетворяющем условию, заменить отрицательные элементы их модулями

#include <stdio.h>
#include <conio.h>



int main()
{
int n, m, i, j, a[20][20], k, p;

printf("Enter n:\n");
scanf("%d", &n);

printf("Enter m:\n");
scanf("%d", &m);

for (i=0;i<n;i++){
for(j=0;j<m;j++)
scanf("%d", &a[i][j]);
}

j=0;
while(j<m){
for(i=0, p=0;i<n; i++){
if(a[i][j]>0)
p=p+1;
else
if(p=0)
k=j;
}
j++;
}

if(k=0)
printf("no\n");
else
for(i=0; i<n;i++)
if(a[i][j]<0)
a[i][k]=abs(a[i][k]);

printf("%d\n",i);

return 0;
}
bars1984 вне форума Ответить с цитированием
Старый 14.05.2009, 23:24   #20
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

bars1984, так и в чем ошибка? Или я сам должен искать?
А это мое замечание:
Цитата:
ps И код заключайте в теги CODE ("#" на панели в окне редактирования).
вы, видимо, проигнорировали.

Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

int main()
{
int n, m, i, j, a[20][20], k, p;

printf("Enter m:\n");
scanf("%d", &m);

printf("Enter n:\n");
scanf("%d", &n);

for (i=0;i<m;i++)
 {
 for(j=0;j<n;j++)
  scanf("%d", &a[i][j]);
 }

p = -1;
for(j=0; j<n; j++)
 {
  k = 0;
  for(i=0; i<m; i++)
   if(a[i][j]>0) k=1;
  if(k==0 && p==-1) p = j;
 }

if(p==-1)
 printf("YES\n");
else
 for(i=0; i<m;i++)
  a[i][p]=abs(a[i][p]);

for(i=0; i<m; i++)
 {
  for(j=0; j<n; j++)
   printf("%4d",a[i][j]);
  printf("\n");
 }

getch();
return 0;
}
В следующий раз даже смотреть не будут при таком оформлении.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12
Массивы AlexLAN Паскаль, Turbo Pascal, PascalABC.NET 0 26.11.2008 18:05
Массивы в С\С++ Zahar11 Помощь студентам 4 31.05.2008 00:35