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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 18.05.2009, 20:09   #1
Akelas13
 
Регистрация: 18.05.2009
Сообщений: 9
По умолчанию задача: сформировать массив простых множителей заданного числа в борланде на Си

Помогите решить задачку:
сформировать массив простых множителей заданного числа в борланде на Си.
Код я написал но гдето там ошибка... не могу понять где! Хелп!

Код:
#include<conio.h>
#include<stdio.h>
#define m 1000
int n;
void main()
{
int mas[m];
int n;// dano chislo n
int k;//
printf("vvedite n ");
scanf("%d",&n);
int i=0;
for(i=1;i<=n;i++) // fabs n
{
for(k=1;k<=n;k++)
if ((i/k==1)&&(n%i))
mas[i];
}
printf(" %d",mas[i]);

}
как то так... надо чето с принтфом сделать наверное...

Последний раз редактировалось MaTBeu; 24.05.2009 в 18:00.
Akelas13 вне форума
Старый 18.05.2009, 21:49   #2
Катюшенька
Пользователь
 
Аватар для Катюшенька
 
Регистрация: 08.12.2008
Сообщений: 32
По умолчанию

А задание какое?
Может так?
Код:
#include<conio.h>
#include<stdio.h>
#define m 1000
int n;
void main()
{
int mas[m];
int n;// dano chislo n
int k, i;//
printf("vvedite n ");
scanf("%d",&n);
for(i=1;i<=n;i++) // fabs n
{
for(k=1;k<=n;k++)
if ((i/k==1)&&(n%i))
mas[i];
}
printf(" %d",mas[i]);

}
Верю... Надеюсь... Люблю...
Катюшенька вне форума
Старый 22.05.2009, 15:21   #3
Akelas13
 
Регистрация: 18.05.2009
Сообщений: 9
По умолчанию

задание? : сформировать массив простых множителей заданного числа в борланде на Си

получается не то как хотелось бы видеть, например на число 6, должен был быть рез-т 1,2,3 а он выдает ноль....

хелп!
Akelas13 вне форума
Старый 22.05.2009, 16:00   #4
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

попробуйте так.

Код:
#include<conio.h>
#include<stdio.h>
#define m 1000
void main()
{
int mas[m];
int n;// dano chislo n
int k, i,dl=0;//
printf("vvedite n ");
scanf("d",&n);
for(i=1;i<=n;i++) // fabs n
{
for(k=1;k<=n;k++)
f ((i/k==1)&&(n%i))
{
mas[i]=k;
dl++;
}
for(i=0;i<dl;dl++)
printf(" %d",mas[i]);
getch();
}
Модератор: я предупреждал по поводу такого оформления кода
Неприятности приходят и уходят, а жизнь продолжается!

Последний раз редактировалось MaTBeu; 24.05.2009 в 18:02.
Sweta вне форума
Старый 22.05.2009, 16:19   #5
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

mas[i]=k;
здесь ошибка
д.б.
mas[dl]=k;
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума
Старый 23.05.2009, 08:49   #6
Akelas13
 
Регистрация: 18.05.2009
Сообщений: 9
По умолчанию

Код:
#include<conio.h>
#include<stdio.h>
#define m 1000
void main()
{
  int mas[m];
  int n;                     // заданное число n
  int k;                     // для поверки простой ли множитель i
  int i;                      // простой множитель
  int dl=0;                 // элемент масcива с нулевого
  printf("vvedite n ");
  scanf("d",&n);
  for(i=1;i<=n;i++)          // задаем массив где 1<i<n
  {
    for(k=1;k<=n;k++)       // массив для проверки простой ли множитель i
      if ((i/k==1)&&(n%i))   // если i делится только на себя и без остатка делит n
      {
        mas[dl]=k;           // записываем i=k в массив, получается mas[0]=k
        dl++;                  // увеличиваем dl++, получается mas[1]
      }
    for(i=0;i<dl;dl++)       // вот тут не понятно зачем цикл 0<i<dl в котором 
                             // опять увеличивается dl++ (получается мы пропустим
                             // все не четные элементы массива?) где 1<i<n а 0<dl<m 
                             // и они ни как не связанны
      printf(" %d",mas[i]);  // только когда 0<i<dl выводим на экран mas[i]? не понятно....
  getch();
  }
}

этот код тоже не хочет работать.... хелп плиз...

Последний раз редактировалось MaTBeu; 24.05.2009 в 18:03.
Akelas13 вне форума
Старый 23.05.2009, 23:44   #7
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Код:
for(i=0;i<dl;dl++) // вот тут не понятно зачем цикл 0<i<dl в котором
эдесь тоже ошибка, для вывода массива делителей необходимо перебирать i от 0 до dl,т.е д.б
for(i=0;i<dl;i++)

Код:
#include<conio.h>
#include<stdio.h>
#define m 1000
void main()
{
Код:
int mas[m];
int n; // заданное число n
int k; // для поверки простой ли множитель i
int i; // простой множитель
int dl=0; // элемент масcива с нулевого - длина массива множителей
printf("vvedite n ");
scanf("%d",&n);
for(i=1;i<=n;i++) // задаем массив где 1<i<n
{
//for(k=1;k<=n;k++) // массив для проверки простой ли множитель i
if ((n/i==1)&&(n%i)) // если i делится только на себя и без остатка делит n
{
mas[dl]=i; // записываем i=k в массив, получается mas[0]=k
dl++; // увеличиваем dl++, получается mas[1]
}
} //Закончили формирование массива множителей

for(i=0;i<dl;i++) // 
printf(" %d",mas[i]); // только когда 0<i<dl выводим на экран mas[i]? не понятно....
getch();

}
if ((n/i==1)&&(n%i)) // если i делится только на себя и без остатка делит n
что-то здесь не так.
Неприятности приходят и уходят, а жизнь продолжается!

Последний раз редактировалось Sweta; 24.05.2009 в 00:21.
Sweta вне форума
Старый 24.05.2009, 08:35   #8
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Код:
#include<conio.h>
#include<stdio.h>
#define m 1000
void main()
{


int mas[m];
int n; 
int i; 
int dl=0; 
printf("vvedite n ");
scanf("%d",&n);
for(i=1;i<=n;i++) 
{

if (n%i==0) 
{
mas[dl]=i; 
dl++; 
}
} 

for(i=0;i<dl;i++) // 
printf(" %d",mas[i]); 
getch();

}

//---------------------------------------------------------------------------
Проверила, работает
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума
Старый 24.05.2009, 09:26   #9
Akelas13
 
Регистрация: 18.05.2009
Сообщений: 9
По умолчанию

спасибо, работает.
находит все делители))))
а нужно "сформировать массив простых множителей заданного числа", еще один if нужен, ща буду пробовать сам доводить)))
еже ли не получится я напишу))))
Akelas13 вне форума
Старый 24.05.2009, 11:29   #10
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

A так:
Код:
Код:
//---------------------------------------------------------------------------


#include<conio.h>
#include<stdio.h>
#define m 1000
void main()
{


int mas[m];
int n; // 
int k; //
int i; // 
int dl=0; // 
printf("vvedite n ");
scanf("%d",&n);
k=n;
for(i=1;i<=k;i++) // 
{
//for(k=1;k<=n;k++) // 
if (n%i==0) // 

{
mas[dl]=i; 
dl++; 
 if (i!=1)
 {
 n=n/i;
 i--;
 }
}
} 

for(i=0;i<dl;i++) // 
printf(" %d",mas[i]); // 
getch();

}

//---------------------------------------------------------------------------
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сумма не больше заданного числа LENA_M Microsoft Office Excel 9 01.05.2009 16:06
Сформировать вектор Х из тех элементов вектора А, сумма цифр которых в десятичной записи больше заданного Dimati87 Помощь студентам 1 06.03.2009 14:36
Задача: сформировать новый массив, содержащий номера строк матрицы, имеющих отрицательную сумму элементов Striker14 Помощь студентам 1 23.02.2009 23:29
Сформировать новый массив,содержащий отрицательные элементы - Задача по PASCAl. Waia Помощь студентам 2 17.12.2008 18:27
Поиск числа, большего заданного pirozho4ek Паскаль, Turbo Pascal, PascalABC.NET 5 21.05.2007 21:39