Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Удаление строк динамического массива

Ответить
Настройки темы
C/C++ - [решено] Удаление строк динамического массива

Аватара для alexprom65

Старожил


Сообщения: 188
Благодарности: 0


Конфигурация

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: jpg prog.jpg
(35.3 Kb, 4 просмотров)
Здравствуйте!
Теперь новая проблема. Нужно написать программу, принимающую на вход размер квадратного динамического массива и элементы массива. Программа должна удалить строки, содержащие особое число (под особым числом подразумевается число Фибоначчи, сумма цифр которого является простым числом (то есть, делится только на 1 и на само себя)). До этого с динамическими массивами дел не имел. Есть оператор free, но массив остаётся неизменным. Да и как я понимаю, чистится не вся строка, а только, почему то первые два элемента. Вообщем, помогите, пожалуйста. К теме прилагаю скрин с результатами.
Код: Выделить весь код
#include <stdio.h>
#include <stdlib.h>
int main()
{
	int n, i, j, k, fib, fib1, fib2, cel, ost, sum, count;
	int **a;
	printf("Type size of matrix\n");
	scanf("%d", &n);
	a=(int**)malloc(n*sizeof(int*));
	if(a==NULL)
		printf("\nERROR");
	for(i=0;i<n;i++)
	a[i]=(int*)malloc(n*sizeof(int));
	if(a==NULL)
		printf("\nERROR");
	printf("Type elements of massive\n");
	for(i=0;i<n;i++)
	for(j=0;j<n;j++)
	scanf("%d", &a[i][j]);
	for(i=0;i<n;i++)
	{
		printf("\n");
		for(j=0;j<n;j++)
		printf("%6d\t", a[i][j]);
	}
	for(i=0;i<n;i++)
	for(j=0;j<n;j++)
	{
		fib=0;
		fib1=0;
		fib2=1;
		sum=0;
		count=0;
		while(fib<=a[i][j])
		{
			fib=fib1+fib2;
			fib1=fib2;
			fib2=fib;
			if(a[i][j]==fib)
			{
				cel=a[i][j];
				while(cel!=0)
				{
					ost=cel%10;
					cel=cel/10;
					sum=sum+ost;
				}
				for(k=1;k<=sum;k++)
					if(sum%k==0)
						count++;
			}
			else continue;
		}
		if(count==2)
		{
			free (a[i]);
			break;
		}
		else continue;
	}
	printf("\nResult is\n");
	for(i=0;i<n;i++)
	{
		printf("\n");
		for(j=0;j<n;j++)
		printf("%6d", a[i][j]);
		free (a[i]);
	}
	free (a);
	getch();
	return 0;
}

Отправлено: 21:43, 24-12-2014

 

Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


alexprom65, раз пошла повторная задачка, оставляйте комментарий к логическим кускам кода.
Опять лезть в отладчик и делать реверс-инженеринг не тянет. Поймите правильно.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:47, 24-12-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Удаление строк динамического массива

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Вывод массива строк в одном окне сообщения (MsgBox) support23 AutoIt 4 29-10-2012 18:26
CMD/BAT - Поиск слова в тексте, удаление строки, удаление 8 строк выше и 3 строк ниже Alk-13 Скриптовые языки администрирования Windows 0 10-02-2012 18:06
CMD/BAT - Удаление строк gen0m.rsw Скриптовые языки администрирования Windows 2 08-10-2010 12:12
Создание динамического массива на Pascal-е Skynet Программирование и базы данных 3 09-10-2004 18:05
Создание массива строк,где  каждая строка оканчивается null Crew Программирование и базы данных 6 22-04-2003 16:59




 
Переход