Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
VLAD1M1R
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 55
#1

Несложная программа - C++

04.11.2009, 16:05. Просмотров 1427. Ответов 22
Метки нет (Все метки)

Здравствуйте, мне нужно написать не сложную программу, но так как мои знания в области с++ на данный момент нулевые, хотел бы попросить у вас помощи. Программа такого типа: "Дано множество чисел, найти среди них число, имеющее максимальное количество делителей".
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2009, 16:05     Несложная программа
Посмотрите здесь:

Задачка несложная - C++
http://5.firepic.org/5/images/2013-11/04/8hpfr4qkym6l.png

Несложная задача,условие на фото - C++
Все на картинке

Несложная программа - Visual C++
Нужно 10 точек вывести на экран.Вроде несложная задачка но не получается.Помогите пжл.Условие на фото.

несложная программа - Free Pascal
Разобрать и отладить код программы, в которой: 1) с помощью типизированной константы вводятся значения элементов целочисленной матрицы M,...

несложная программа - C#
Помогите написать программу: Создать меню с командами Input, Work, Exit. При выборе команды Exit приложение завершает работу. При...

Несложная программа - C (СИ)
Задано целое n>0 и последовательность с n действительных чисел. Найти сумму положительных и сумму отрицательных чисел этой...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
27.11.2009, 13:31     Несложная программа #16
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream.h>
#include <fstream.h>
#include <process.h>
#include <conio.h>
int main()
{
    int n, *mas, i=0, j, j1, count1, count2=0, index, a;
    bool fl;
    ifstream input("input.txt");
    if(!input)
        exit(1);
    input>>n;
    mas=new int[n];
    while(!input.eof())
    {
        input>>mas[i];
        i++;
    }
    for(i=0; i<n; i++)
    {       
        count1=0;
        a=mas[i];
        for(j=2; j<a/2; j++)
        {
            fl=true;
            for(j1=2; j1<j; j1++)
                if(j%j1==0)
                    fl=false;
            if(fl && a%j==0)
            {
                a/=j;
                count1++;
                j--;
            }
        }
        if(count1>count2)
        {
            count2=count1;
            index=i;
        }
    }
    cout<<"Maximum delitelei imeet chislo "<<mas[index]<<endl;
    input.close();
  getch();
  return 0;
}
Только в файле input.txt, откуда считываются числа, сначало должно быть число - количество чисел, которые будут проверяться, а затем сами числа записаны
VLAD1M1R
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 55
10.12.2009, 00:40  [ТС]     Несложная программа #17
спасибо за программу... только одно но... так как эти задания нам дали на раннем этапе изучения с++ , то я думаю преподаватель завалит вопросами, скажет объяснить о том или ином символе/обозначении. Хотел бы узнать, возможно ли написать эту программу с базовыми (начальными) знаниями, без "сложных" операций?)) Или это и так самый простой способ???...
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
10.12.2009, 09:12     Несложная программа #18
Тогда давайте я дам коментарии по основной части кода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
int main()
{
        int n, *mas, i=0, j, j1, count1, count2=0, index, a; 
        bool fl; // переменная типа bool принимает только два значения: false и true
        ifstream input("input.txt"); // открываем файл (в котором записано множество чисел)
        if(!input) // если не открыли
                exit(1); // то выходим из программы
        input>>n; // считываем первое значение из файла в переменную n (я писал ранее, что это число должно быть количеством множества чисел)
        mas=new int[n]; // создаем динамически массив для хранения переменных типа int, размером n
        while(!input.eof()) // пока файл не закончится
        {
                input>>mas[i]; // считываем очередное число в массив
                i++; // увеличиваем индекс
        }
        for(i=0; i<n; i++) // перебираем i 
        {               
                count1=0; 
                a=mas[i]; // значение очередного числа из массива присваиваем переменной a
                for(j=2; j<a/2; j++) // перебираем j до значения a/2
                {
                        fl=true;
                        for(j1=2; j1<j; j1++) // перебираем j1 
                                if(j%j1==0) // если j делится на j1 без остатка (а это значит что j не простое число)
                                        fl=false;
                        if(fl && a%j==0) // если fl осталось со значением true (это в том случае если j простое число) и a делится на j без остатка
                        {
                                a/=j; // a делим на j
                                count1++; // переменную count1 увеличиваем на 1 (в ней хранится значение количества делителей числа a)
                                j--; // уменьшаем на единицу, потому что таких делителей, как предыдущий может быть несколько
                        }
                }
                if(count1>count2) // если только что полученное значение кол-ва делителей (count1) больше, чем хранится в переменной count2
                {
                        count2=count1; 
                        index=i; // в переменную index записываем значение i (на текущий момент из всех проверенных ранее чисел, в mas[index] хранится число имееющее самое большое кол-во делителей)
                }
        }
        cout<<"Maximum delitelei imeet chislo "<<mas[index]<<endl; // выводим на экран
        input.close();// закрываем файл
  getch(); // задержка на экране результата
  return 0;
}
VLAD1M1R
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 55
10.12.2009, 17:18  [ТС]     Несложная программа #19
Большое спасибо
VLAD1M1R
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 55
11.12.2009, 11:58  [ТС]     Несложная программа #20
короче я прописал все как ты сказал, но у меня 1 ошибка вылетает, сам разобраться не смог.. вот лог ошибки:
1>------ Build started: Project: chislo s max summoy delit, Configuration: Debug Win32 ------
1>Compiling...
1>chislo s max summoy delit.cpp
1>e:\оитзи(1 курс)2009\vlad1m1r\chislo s max summoy delit\chislo s max summoy delit\chislo s max summoy delit.cpp(52) : fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?
1>Build log was saved at "file://e:\ОиТЗИ(1 курс)2009\VLAD1M1R\chislo s max summoy delit\chislo s max summoy delit\Debug\BuildLog.htm"
1>chislo s max summoy delit - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
11.12.2009, 12:36     Несложная программа #21
Вот так попробуйте:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <process.h>
#include <conio.h>
using namespace std;
int main()
{
        int n, *mas, i=0, j, j1, count1, count2=0, index, a;
        bool fl;
        ifstream input("input.txt");
        if(!input)
                exit(1);
        input>>n;
        mas=new int[n];
        while(!input.eof())
        {
                input>>mas[i];
                i++;
        }
        for(i=0; i<n; i++)
        {               
                count1=0;
                a=mas[i];
                for(j=2; j<a/2; j++)
                {
                        fl=true;
                        for(j1=2; j1<j; j1++)
                                if(j%j1==0)
                                        fl=false;
                        if(fl && a%j==0)
                        {
                                a/=j;
                                count1++;
                                j--;
                        }
                }
                if(count1>count2)
                {
                        count2=count1;
                        index=i;
                }
        }
        cout<<"Maximum delitelei imeet chislo "<<mas[index]<<endl;
        input.close();
  getch();
  return 0;
}
VLAD1M1R
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 55
11.12.2009, 17:28  [ТС]     Несложная программа #22
т.е. ты просто добавил библиотеку #include "stdafx.h" ? Прочитав ошибку я тоже сначала так сделал, но затем мне выдало еще 6 error'ов... Не могу понять в чем проблема =(
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2009, 17:30     Несложная программа
Еще ссылки по теме:

Несложная программа. Заплачу. - Delphi
Доброго времени суток. Очень нужна Ваша помощь. Времени в обрез, а сдавать работу надо. Вот тут лежит описание программы:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
11.12.2009, 17:30     Несложная программа #23
VLAD1M1R, Компилятором каким пользуетесь? И кстати я не только добавил #include "stdafx.h". Все-таки пробовали мой последний вариант?
Yandex
Объявления
11.12.2009, 17:30     Несложная программа
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru