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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2009, 21:26   #1
iggor
Пользователь
 
Регистрация: 15.03.2009
Сообщений: 34
По умолчанию Матрица в Си

Если все элементы какой-нибудь строки матрицы равны между собой, то все элементы такой строки заменить нулями!

Как это сделать??, помогите....
iggor вне форума Ответить с цитированием
Старый 06.12.2009, 22:15   #2
Valentine
Пользователь
 
Регистрация: 29.11.2009
Сообщений: 14
По умолчанию

Можно так

for (i=0;i<n;i++)
{
k=0; //as flag
for (j=0;j<m-1;j++)
{
if (b[i][j]!=b[i][j+1]) break;
else k=1;
}
if (k==1)
for (j=0;j<m;j++)
b[i][j]=0;

не элегантно, но работает
Valentine вне форума Ответить с цитированием
Старый 06.12.2009, 23:37   #3
iggor
Пользователь
 
Регистрация: 15.03.2009
Сообщений: 34
По умолчанию

может я с выводом что не так сделал?? не хочет выводить((
Код:
#pragma argsused
#include <stdio.h>
#include <conio.h>
int main(int argc, char* argv[])
{int nstr,nstb,i,j,k;
 int a[4][4];

{printf("\nVvedite kol-vo strok: ");
scanf ("%d",&nstr);
printf("\nVvedite kol-vo stolbcov: ");
scanf("%d",&nstb);}

    printf("\nVvedite elementi massiva: \n");
          {for (i=0;i<nstr;i++)
          for (j=0;j<nstb;j++)
          scanf("%d",&a[i][j]);}

          for (i=0;i<nstr;i++)
{
k=0;
for (j=0;j<nstb-1;j++)
{
if (a[i][j]!=a[i][j+1]) break;
else k=1;
}
if (k==1)
for (j=0;j<nstb;j++)
a[i][j]=0;           }





          for (i=0;i<nstr;i++)
          for (j=0;j<nstb;j++)
           printf("\nnovi massiv: %d\n",a[i][j]);

      getch();

        return 0;
}

Последний раз редактировалось iggor; 07.12.2009 в 00:36.
iggor вне форума Ответить с цитированием
Старый 07.12.2009, 00:21   #4
Valentine
Пользователь
 
Регистрация: 29.11.2009
Сообщений: 14
По умолчанию

В циклах ввода и вывода счетчик цикла строго меньше длин строк и столбцов, а также размер массива не должен превышать 4
Valentine вне форума Ответить с цитированием
Старый 07.12.2009, 00:35   #5
iggor
Пользователь
 
Регистрация: 15.03.2009
Сообщений: 34
По умолчанию

то что размер не превышает 4 это ясно, исправил <= на <, теперь выводит..., только те же числа которые ввожу с клавы....

Последний раз редактировалось iggor; 07.12.2009 в 00:42.
iggor вне форума Ответить с цитированием
Старый 07.12.2009, 01:01   #6
Valentine
Пользователь
 
Регистрация: 29.11.2009
Сообщений: 14
По умолчанию

Iggor, I am sorry, но в прошлый раз я ошибся в коде, правильно так:

#pragma argsused
#include <stdio.h>
#include <conio.h>
int main(int argc, char* argv[])
{int nstr,nstb,i,j,k;
int a[4][4];

{printf("\nVvedite kol-vo strok: ");
scanf ("%d",&nstr);
printf("\nVvedite kol-vo stolbcov: ");
scanf("%d",&nstb);}

printf("\nVvedite elementi massiva: \n");

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

for (i=0;i<nstr;i++)
{
k=0;
for (j=0;j<nstb-1;j++)
{
if (a[i][j]!=a[i][j+1])
{
k=0;
break;
}
else k=1;
}
if (k==1)
for (j=0;j<nstb;j++)
a[i][j]=0; }




printf("\nnovi massiv:\n");
for (i=0;i<nstr;i++)
{
for (j=0;j<nstb;j++)
printf("%2d",a[i][j]);
puts("");
}
getch();

return 0;
}
Valentine вне форума Ответить с цитированием
Старый 07.12.2009, 01:24   #7
iggor
Пользователь
 
Регистрация: 15.03.2009
Сообщений: 34
По умолчанию

Спасибо большое....!!!!!!
iggor вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятки с DirectX (матрица поворота, камера, матрица проекции) ROD Общие вопросы C/C++ 2 17.09.2010 17:00
TurboPascal: граф, матрица смежности и матрица инцидентности. ulala Помощь студентам 0 02.12.2009 10:11
Матрица на C++ Maxs Помощь студентам 5 31.05.2009 14:35
Матрица jorjinho10 Паскаль, Turbo Pascal, PascalABC.NET 2 14.05.2009 15:18
Матрица BlonDino4Ka Паскаль, Turbo Pascal, PascalABC.NET 3 07.01.2009 00:04