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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2011, 22:20   #1
SeregaTihonov
Пользователь
 
Регистрация: 20.12.2010
Сообщений: 12
Радость В матрице, удалить столбец, элемент которого, кратный 5

//В матрице, удалить столбец, элемент которого, кратный 5.
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#include <conio.h>
void main()
{
//обьявление переменных.
int **a,**b,kol=0;
int i,j,m,n,indx_i,indx_j;
//ввод размерности матрицы.
printf("=========================== =========================\n");
printf("\n Vvedite razmer matrici: \n");
printf("\n Vvedite m: ");
scanf("%d",&m);
printf("\n Vvedite n: ");
scanf("%d",&n);
//выделение динамической памяти для матрицы А.
a=(int**)malloc(m*sizeof(int*));
for(i=0;i<m;i++)
{
a[i]=(int*)malloc(n*sizeof(int));
}
//автоматическое заполнение матрицы А.
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
a[i][j]=rand()%25;
}
}
//вывод матрицы А на экран.
printf("\n========================= ===========================\n");
printf("\n Ishodnaya matrica: \n\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%4d",a[i][j]);
puts("\n");

}
//поиск элемента кратного пяти.
printf("=========================== =========================\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(a[i][j]%5==0 && a[i][j]!=0)
{

indx_i=i;
indx_j=j;
printf("\n Kratniy pyati[%d]",i);
printf("[%d]=%d\n",j,a[i][j]);
kol++;
}
}
}
printf("\n========================= ===========================\n");
printf("\n Kolichestvo stolbcov s elementami kratnimi pyati: %d\n",kol);
printf("\n========================= ===========================\n");
//выделение динамической памяти для матрицы B.
b=(int**)malloc(m*sizeof(int*));
for(i=0;i<m;i++)
{
b[i]=(int*)malloc(n*sizeof(int));
}
//заполнение матрицы В.
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
b[i][j]=a[i][j];
}
}
//удаление столбца(ов) с элементом кратным пяти.
for(i=0;i<m;i++)
{
for(j=indx_j;j<n;j++)
{
if(j=indx_j)
{
b[i][j]=b[i][j+1];
}
}
}
//вывод матрицы В на экран.
printf("\n Poluchennaya matrica :\n\n");
for(i=0;i<m;i++)
{
for(j=0;j<n-kol;j++)
printf("%4d",b[i][j]);
puts("\n");
}
printf("=========================== =========================\n");
printf("\n Dlya vixoda nazhmite lubuyu klavishu...\n");
printf("\n========================= ===========================\n");
_getch();
}
SeregaTihonov вне форума Ответить с цитированием
Старый 25.03.2011, 22:23   #2
Акоб
Форумчанин
 
Регистрация: 10.01.2011
Сообщений: 243
По умолчанию

В чем проблема?
Акоб вне форума Ответить с цитированием
Старый 25.03.2011, 23:56   #3
vitaska
Пользователь
 
Регистрация: 03.02.2010
Сообщений: 22
По умолчанию

Цитата:
Сообщение от SeregaTihonov Посмотреть сообщение
//В матрице, удалить столбец, элемент которого, кратный 5.
в смысле? если есть хотя бы один элемент кратный 5, то необходимо удалить этот столбец?
vitaska вне форума Ответить с цитированием
Старый 26.03.2011, 13:15   #4
Летучий_СкилетиК
Форумчанин
 
Аватар для Летучий_СкилетиК
 
Регистрация: 04.02.2011
Сообщений: 260
По умолчанию

Цитата:
В матрице, удалить столбец, элемент которого, кратный 5
не охото разбираться в вашем коде что там у вас не работает искать, вот мой код:
Код:
#include <stdio.h>
int main() 
{
	int n = 3, m = 3, a [50][50], i, j, jj, g; 
	for (i = 0; i < n; i++)
		for (j = 0; j < m; j++)
			scanf("%d",&a[i][j]);
	for (j = 0; j < m; j++)
	{
		g = 0;
		for (i = 0; i < n; i++)
			if (a[i][j] % 5 == 0){g = 1;break;}
		if (g == 1 && j < m - 1)
		{
			for (jj = j; jj < m - 1; jj++)
				for ( i = 0; i < n; i++)
					a[i][jj] = a[i][jj+1];
			m--;
		} else if (g == 1)m--;
	}printf("\n");
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < m; j++)
			printf("%d ",a[i][j]);
	printf("\n");
	}
return 0;
}
p.s
Цитата:
а можете,пожалуйста, переделать в си
, переделал, вроде даже без ошибок

Последний раз редактировалось Летучий_СкилетиК; 26.03.2011 в 13:51.
Летучий_СкилетиК вне форума Ответить с цитированием
Старый 26.03.2011, 13:33   #5
SeregaTihonov
Пользователь
 
Регистрация: 20.12.2010
Сообщений: 12
По умолчанию

а можете,пожалуйста, переделать в си, если конечно не сложно!!!
SeregaTihonov вне форума Ответить с цитированием
Старый 26.03.2011, 14:01   #6
SeregaTihonov
Пользователь
 
Регистрация: 20.12.2010
Сообщений: 12
По умолчанию

спасибо!!! очень помогли!!!
SeregaTihonov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вычеркнуть строку и столбец на пересечении которого находится максимальный элемент Amalia Общие вопросы Delphi 2 03.04.2010 08:01
Транспонировать квадрат,в нижнем левом углу которого находится минимальный элемент zidan671 Помощь студентам 14 13.03.2009 22:05
Задача на СИ в заданной матрице поменять местами первую строку и первый столбец %( defol-777 Помощь студентам 2 14.01.2009 09:59
одномерный массив, каждый элемент которого равен наибольшему по модулю элементу соответствующего столбца ruslan09-93 Помощь студентам 2 15.11.2008 20:26