|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Удаление строк динамического массива |
|
C/C++ - [решено] Удаление строк динамического массива
|
Старожил Сообщения: 188 |
Профиль | Отправить PM | Цитировать
Здравствуйте!
Теперь новая проблема. Нужно написать программу, принимающую на вход размер квадратного динамического массива и элементы массива. Программа должна удалить строки, содержащие особое число (под особым числом подразумевается число Фибоначчи, сумма цифр которого является простым числом (то есть, делится только на 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 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать alexprom65, раз пошла повторная задачка, оставляйте комментарий к логическим кускам кода.
Опять лезть в отладчик и делать реверс-инженеринг не тянет. Поймите правильно. |
------- Отправлено: 22:47, 24-12-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Вывод массива строк в одном окне сообщения (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 |
|