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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2009, 11:30   #1
Geg[C/c++]
Пользователь
 
Аватар для Geg[C/c++]
 
Регистрация: 18.02.2009
Сообщений: 76
По умолчанию C++ Задачка с матрицей.

Здравствуйте
Вот условие задачи:
Из 30 положительных, отрицательных и нулевых значений чисел сформируйте матрицу 6х5. Выдайте координаты расположения всех нулевых значений элементов матрицы.

Вот что я написал это только начало, дальше немогу понять может чего то незнаю просто. Прошу помощи.
Код:
#include <stdio.h>
#include <stdlib.h>
int main()
{int matrix[6][5];
int i, j;
for (i = 0; i <= 5; i++)
{for (j = 0; j <=4; j++)
{matrix[i][j] = rand()%255 - 127;
//printf("%d ", matrix[i][j]);
}
//printf("\n");
}
Мне что то говорили про то что вывод результатов нужно сделать в виде матрицы из двух столбцов, в которых располагаются номера строк и столбцов элементов.
Все что не делается все к ... А какого черта? Делайте все что задумали и все что вам захочется.
Если конечно задуманное вами не попадает под статью.. © Geg[C/c++][поиск]
Geg[C/c++] вне форума Ответить с цитированием
Старый 17.05.2009, 11:52   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Мне что то говорили про то что вывод результатов нужно сделать в виде матрицы из двух столбцов, в которых располагаются номера строк и столбцов элементов.
Ну вот так и сделайте.
Просто проходите по матрице. Если элемент = 0, то выводите его индексы.
Что именно вам непонятно? Здесь осталось дописать где-то 4 строчки.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 17.05.2009, 12:04   #3
Geg[C/c++]
Пользователь
 
Аватар для Geg[C/c++]
 
Регистрация: 18.02.2009
Сообщений: 76
По умолчанию

Цитата:
Просто проходите по матрице. Если элемент = 0, то выводите его индексы.
Что именно вам непонятно? Здесь осталось дописать где-то 4 строчки.
И на том спасибо))
Хотя я уже прикинул тут четырьмя строками не обойтись.
Все что не делается все к ... А какого черта? Делайте все что задумали и все что вам захочется.
Если конечно задуманное вами не попадает под статью.. © Geg[C/c++][поиск]
Geg[C/c++] вне форума Ответить с цитированием
Старый 17.05.2009, 12:12   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Хотя я уже прикинул тут четырьмя строками не обойтись.
Первые две - циклы (по строкам и по столбцам).
Третья - условие (если элемент = 0, то...)
Четвертая (можно и в третьей написать) - тело if'а: printf("%d %d\n",i,j);
И все.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 17.05.2009, 12:14   #5
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Ровно 4 строки
Код:
for (i = 0; i < 6; ++i)
  for (j = 0; j < 5; ++j)
    if (!matrix[i][j])
      printf("%d\t%d\n", i, j);
pu4koff вне форума Ответить с цитированием
Старый 17.05.2009, 12:28   #6
Geg[C/c++]
Пользователь
 
Аватар для Geg[C/c++]
 
Регистрация: 18.02.2009
Сообщений: 76
По умолчанию

А не так ?
i < 5 j < 4
потому что от нуля отсчёт
012345 6 элементов
матрицу объявляешь как надо, matrix[6][5]
Все что не делается все к ... А какого черта? Делайте все что задумали и все что вам захочется.
Если конечно задуманное вами не попадает под статью.. © Geg[C/c++][поиск]
Geg[C/c++] вне форума Ответить с цитированием
Старый 17.05.2009, 12:31   #7
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от Geg[C/c++] Посмотреть сообщение
А не так ?
i < 5 j < 4
потому что от нуля отсчёт
012345 6 элементов
матрицу объявляешь как надо, matrix[6][5]
Нет. Не так.
При условии i < 5 будут выполнены следующие итерации:
i == 0
i == 1
i == 2
i == 3
i == 4
а i == 5 уже не выполнится, а Вы сами написали, что последний индекс равен 5
pu4koff вне форума Ответить с цитированием
Старый 17.05.2009, 12:39   #8
Geg[C/c++]
Пользователь
 
Аватар для Geg[C/c++]
 
Регистрация: 18.02.2009
Сообщений: 76
По умолчанию

Ааа..
тока еще надо Ранд гдето 6-3 чтоб нули были.
Все что не делается все к ... А какого черта? Делайте все что задумали и все что вам захочется.
Если конечно задуманное вами не попадает под статью.. © Geg[C/c++][поиск]
Geg[C/c++] вне форума Ответить с цитированием
Старый 17.05.2009, 16:32   #9
Geg[C/c++]
Пользователь
 
Аватар для Geg[C/c++]
 
Регистрация: 18.02.2009
Сообщений: 76
По умолчанию

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

int main()

{printf("matrix: \n\n");
int matrix[6][5];
int i, j;
for (i = 0; i < 6; i++)
{for (j = 0; j < 5; j++)
{matrix[i][j] = rand()%6 - 3;
printf("%d ", matrix[i][j]);
}
printf("\n");
}
printf("\nkoordinati nulei: ");

for (i = 0; i < 6; i++)
{for (j = 0; j < 5; j++)
{if (!matrix[i][j]) printf("%d%d, ", i+1, j+1);
}}
printf("\n\n");
return 0;
}
Все сделал вот код короче рабочий
Все что не делается все к ... А какого черта? Делайте все что задумали и все что вам захочется.
Если конечно задуманное вами не попадает под статью.. © Geg[C/c++][поиск]
Geg[C/c++] вне форума Ответить с цитированием
Старый 17.05.2009, 18:45   #10
depo111
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 10
По умолчанию

Помите доделать програмку дана матрица размера А(5*5) нужно заменить в строке элементы нулями которые лежат левее наибольшего(максимального) в строке к примеру вводим первую строку(на примере первой строки) 1 3 7 2 7
а результат должен быть такой 0 0 7 2 7 я так думаю тут нужно найти минимальный индекс j - столбца и присвоить ему max но почемуто не получается
#include <stdio.h>
#include <conio.h>
#define N 5
void main()
{clrscr();
int A[N][N],i,j,max,m,h,l=0;
FILE *fp;
fp=fopen("lab3.txt", "w");
for (i=0;i<N;i++)
for (j=0;j<N;j++)
{
printf ("Vvedite A[%d][%d]",i+1,j+1);
scanf ("%d", &A[i][j]);
}
clrscr();
printf ("icxodnaya matrica\n");
fprintf (fp,"icxodnaya matrica\n");
for (i=0;i<N;i++)
{
for (j=0;j<N;j++)
{
printf ("%d ",A[i][j]);
fprintf(fp,"%5d", A[i][j]);
}

printf("\n");
fprintf(fp,"\n");
}
printf("\n");
for (i=0;i<N;i++)
{ max=A[i][0];
for (j=0;j<N;j++)
if (A[i][j]>=max) max=A[i][j];
printf("Max %d ctroki %d\n",i+1,max);
fprintf(fp,"Max %d ctroki %d\n",i+1,max);
for (h=0;h<N;h++)
if (A[i][h]==max) l=h;
for (m=0;m<l;m++)
if (A[i][m]!=max) A[i][m]=0;
}
printf("\n");
printf ("Rezultat raboti programmi\n");
fprintf (fp,"Rezultat raboti programmi\n");
for (i=0;i<N;i++)
{
for (j=0;j<N;j++)
{ printf ("%d ",A[i][j]);
fprintf (fp,"%5d ",A[i][j]);
}
printf("\n");
fprintf(fp,"\n");
}
fclose(fp);
getch();
}
depo111 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача с матрицей bonys91 Помощь студентам 1 02.04.2009 20:02
Задача с матрицей Kawun Помощь студентам 9 26.03.2009 00:29
Помогите с матрицей Panda Помощь студентам 1 06.07.2008 16:42
Задача с матрицей H[o][o]K Помощь студентам 1 15.12.2007 16:51
проблема с матрицей kommunist Помощь студентам 8 14.10.2007 19:29