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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2011, 15:49   #1
Dpo6oDyH
 
Регистрация: 17.05.2011
Сообщений: 8
По умолчанию Функции. Си. Не могу справиться

В главной программе осуществляется ввод исходных данных, обращение к функциям и вывод результатов. С помощью функции упорядочить строки матрицы по возрастанию характеристики. Характеристика строки — количество чисел в строке, у которых сумма делителей равна 7.

Не могу написать функцию характеристики. Помогите пожалуйста. Вот что сделано:
Код:
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <time.h>
 
void zap(int **a,int n, int m) //функция заполнения
{int i,j;
for (i=0;i<n;i++)
    {for (j=0;j<m;j++)
        {
            *(*(a+i)+j)=rand()%6+1;
        }
    }
}
 
void viv(int **a,int n, int m) //функция вывода
{int i,j;
for (i=0;i<n;i++)
    {for (j=0;j<m;j++)
        {
            printf("%i    ",*(*(a+i)+j));
        }
        printf("\n");
    }
}
 
int sch(int s)
{   int i,s=0;
   for (i=1;i<=s;i++)
    if (s%i==0)s+=i;
    return s;
    }
 
void har(int **a) //характеристика. Не могу додуматься как её написать
{
    int m,n,i,j,s;
 
}
 
int main()
{
    int **a, n,m,i,j,k,max,i_max,j_max;
    scanf("%i%i", &n,&m);
    srand((unsigned)time(NULL));
    a=(int**)malloc(n*sizeof(int));
    for (i=0;i<n;i++)
    *(a+i)=(int*)malloc(m*sizeof(int));
    zap(a,n, m);
    viv(a,n, m);
    return 0;
}

Последний раз редактировалось ACE Valery; 17.05.2011 в 19:13.
Dpo6oDyH вне форума Ответить с цитированием
Старый 17.05.2011, 15:52   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Контакты в подписи. Справлюсь.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 17.05.2011, 16:00   #3
Dpo6oDyH
 
Регистрация: 17.05.2011
Сообщений: 8
По умолчанию

А прям тут нельзя?

Последний раз редактировалось Dpo6oDyH; 17.05.2011 в 16:08.
Dpo6oDyH вне форума Ответить с цитированием
Старый 18.05.2011, 12:58   #4
Dpo6oDyH
 
Регистрация: 17.05.2011
Сообщений: 8
По умолчанию

Помогите пожалуйста, не могу написать функцию характеристики и функцию сортировки. Всё остальное сделано
Dpo6oDyH вне форума Ответить с цитированием
Старый 18.05.2011, 16:10   #5
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Задача изначально не совсем корректна.
Цитата:
Характеристика строки — количество чисел в строке, у которых сумма делителей равна 7.
Потому что, согласно определению делителя натурального числа, каждое натуральное число имеет по крайней мере 2 делителя -- единицу и само себя.
Значит (после вычитания 1), получаем, что искомое число не может быть больше 6.
6 не подходит, поскольку кроме самого себя имеет еще делители 2 и 3. Сумма делителей = 1 + 2 + 3 + 6 = 12.
5. Сумма делителей = 1 + 5 = 6.
4. Сумма делителей = 1 + 2 + 4 = 7.
3. Сумма делителей = 1 + 3 = 4.
2. Сумма делителей = 1 + 2 = 3.
1. Сумма делителей = 1.

Таким образом, функция характеристики сводится к нахождению в строке количества 4.

Поэтому вопрос ТС, а вернее, тому, кто ставил задачу -- правильно ли сформулировано условие для функции характеристики, или там подразумевалось что-то иное?
Например, сумма делителей, не считая само число и/или единицу; или вообще количество делителей, а не их сумма; или еще что-нибудь...

В любом случае, функция характеристики пишется элементарно -- одним циклом.
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
НЕ МОГУ СПРАВИТЬСЯ С ЗАДАНИЕМ tanya-ay Помощь студентам 2 18.02.2011 07:49
Не могу справиться с Padeg.dll LAnLorD Microsoft Office Excel 10 17.11.2010 12:48
Программирование алгоритмов с использованием подпрограмм - функций, не могу справиться с ошибками Positive-z Общие вопросы C/C++ 4 13.06.2010 17:25
Матрица.TurboPascal. Не могу справиться Анюта) Помощь студентам 5 05.12.2009 16:07
Просто, но справиться не могу. Небесный Общие вопросы Delphi 1 05.05.2008 11:32