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

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

Войти
Регистрация
Восстановить пароль
 
BukToOp
0 / 0 / 0
Регистрация: 05.03.2013
Сообщений: 11
#1

Немогу разобраться, почему выводит каждое число по 20 раз? - C++

05.03.2013, 13:34. Просмотров 646. Ответов 12
Метки нет (Все метки)

Ну суть ясна в названии, программировал в Borland C++ for DOS
Код:
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
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
void main()
{
    clrscr();
    int m; 
    int n; 
    printf("Enter maximal simple number: ");
    scanf("%i",&m);
 
       //   printf("Simple numbers: \n");
    for(n=2; n<=m; n++)
    {
        int f[20];
        int i;
        for(int u=0; u<20; u++)
        {
            for(i=2; i<n; i++)
            {
            if(n%i==0) {break;}
            }
            if(i==n)
            {f[u]=n;
            printf("Simple number #%i: %i ",u, n);
            }
            double r=pow(2,f[u])-1;
                        printf("%lf, ", r);
            }
    }
 
    printf("\n");
    getch();
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.03.2013, 13:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Немогу разобраться, почему выводит каждое число по 20 раз? (C++):

Определить, сколько раз каждое число используется в массиве - C++
Вот код: #include &lt;iostream&gt; using namespace std; int main() { //двухмерный массив int numbers = {{1, 2, 7} , {2, 5, 3},...

Одномерный массив: сколько раз повторяется каждое число - C++
помогите решить такую задачку: есть одномерный массив, в котором n элементов, мы вводим в него числа и надо определить сколько раз...

Подсчитать,сколько раз каждое число встречается в файле - C++
Помогите ,кому нетрудно с лабораторной работой. Задание: подсчитать,сколько раз каждое число встречается в тексте файла number1.txt. Все...

Каждое второе число в массиве, которые повторяются более 2 раз, удалить - C++
На языке С написать программу. Условия: Дан массив a. Каждое второе число,которые повторяются более 2 раз, удалить. У меня тут...

Подскажите еще раз пожалуйста, почему во 2 столбце не выводит слова? - C++
#include &lt;stdio.h&gt; #include &quot;iostream&quot; int main(void) { setlocale(0,&quot;&quot;); unsigned short cs1, cs2, cs3; char name1, name2,...

Почему вместо нужных значений программа выводит несколько раз -6.227744e+66? - C++
считываю матрицу чисел из файла double bufDownloadVector; std::ifstream stream(&quot;C:\\Users\\...\\dollar.txt&quot;); if...

12
-=ЮрА=-
Заблокирован
Автор FAQ
05.03.2013, 13:47 #2
Цитата Сообщение от BukToOp Посмотреть сообщение
for(i=2; i<n; i++)
* * * * * * {
* * * * * * if(n%i==0) {break;}
* * * * * * }
- что за дурацкий цикл?
Изложи как стоит задание?
0
BukToOp
0 / 0 / 0
Регистрация: 05.03.2013
Сообщений: 11
05.03.2013, 13:53  [ТС] #3
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Изложи как стоит задание?
Тут я находил простые числа, для того чтобы вычислить около 20 чисел Мерсенна. Суть задания в том, чтобы программа выводила первые 20 чисел Мерсенна. Ну я писал 20, можно и сделать до 12. Главное чтобы она быстро это делала.
0
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,127
05.03.2013, 14:09 #4
Напишите задание это будет проще
Пока писал уже кто то спросил(тавтология)

Попробуйте это может поможет
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <math.h>
#include <iostream>
using namespace std;
int main()
{
 
    const int m=20;
    int fp[m],a;
    a=2;
 
   for(int i=2;i<=m;i++)
   {
       cout<<pow(2,i)-1<<endl;
   }
 
 
 
return 0;
}
0
BukToOp
0 / 0 / 0
Регистрация: 05.03.2013
Сообщений: 11
05.03.2013, 14:18  [ТС] #5
Ругается, что то с библиотекой iostream наверно не так:
Error NONAME00.CPP 2: Unable to open include file 'IOSTREAM'
Error NONAME00.CPP 3: Declaration syntax error
Error NONAME00.CPP 13: Undefined symbol 'cout'
Error NONAME00.CPP 13: Undefined symbol 'endl'
0
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,127
05.03.2013, 14:31 #6
Замените
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <math.h>
using namespace std;
int main()
{
 
    const int m=20;
    int a=0;
 
   for(int i=2;i<=m;i++)
   {
       a=pow(2,i)-1;
       printf("%i",a);
       printf("\n");
   }
 
return 0;
}
1
BukToOp
0 / 0 / 0
Регистрация: 05.03.2013
Сообщений: 11
05.03.2013, 14:32  [ТС] #7
Поискал, оказывается у меня старая версия и поэтому немного изменил программный код, но почему то теперь когда я программу запускаю, результат не выводится или очень быстро пролетает, т.е. окно открывается и закрывается.
Цитата Сообщение от egor2116 Посмотреть сообщение
Замените
Заменил, все равно синтаксическая ошибка в третей строчке
0
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,127
05.03.2013, 14:37 #8
пардон удалите
C++
1
using namespace std;
1
-=ЮрА=-
Заблокирован
Автор FAQ
05.03.2013, 14:39 #9
BukToOp, лови
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
 
int main()
{
    int N = 0;
    int n = 0;
    printf("Enter number count : ");
    scanf("%d", &N);
    double M    = 0;
    double pow2 = 1.0;
    for(n = 1; n < N; n = n + 1)
    {
        pow2 = pow2 * 2;
        M    = pow2 - 1;
        printf("%d\t: %.0f\n", n, M);
    }
    return 0;
}
1
Миниатюры
Немогу разобраться, почему выводит каждое число по 20 раз?  
BukToOp
0 / 0 / 0
Регистрация: 05.03.2013
Сообщений: 11
05.03.2013, 14:41  [ТС] #10
Что то не так. Насколько я знаю числа Мерсенна основываются на простых числах. Например, первое число Мерсенна равно 7, т.к. первое простое число равно 3. Т.е. 2 в степени 3 и минус 1 получается семь. Но дальше в программе идет не совсем так, т.к. следующее простое число равно 5, а у вас 4.
P.S. Удалил третью строчку, добавил библиотеку conio.h и в конце перед return 0; написал getch(); - заработала.
0
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,127
05.03.2013, 14:48 #11
Выдеhжка из Wiki
Числа Мерсе́нна — числа вида M_n = 2^n - 1 , где n — натуральное число. Названы в честь французского математика Марена Мерсенна.
Последовательность чисел Мерсенна начинается так:
1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, … (последовательность A000225 в OEIS)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <math.h>
int main()
{
 
    const int m=20;
    int a=0;
 
   for(int i=1;i<=m;i++)
   {
       a=pow(2,i)-1;
       printf("%i",a);
       printf("\n");
   }
 
return 0;
}
Вывод
1
3
7
15
31
63
127
255
511
1023
2047
4095
8191
16383
32767
65535
131071
262143
524287
1048575

Добавлено через 2 минуты
Правда есть и другая последовательность Марсенна
Выдержка из Wiki
Иногда числами Мерсенна называют числа M_n с простыми индексами p. Эта последовательность начинается так:
3, 7, 31, 127, 2047, 8191, 131071, 524287, 8388607, 536870911, 2147483647, … (последовательность A001348 в OEIS)
0
-=ЮрА=-
Заблокирован
Автор FAQ
05.03.2013, 14:49 #12
Цитата Сообщение от BukToOp Посмотреть сообщение
Что то не так. Насколько я знаю числа Мерсенна основываются на простых числах. Например, первое число Мерсенна равно 7, т.к. первое простое число равно 3. Т.е. 2 в степени 3 и минус 1 получается семь. Но дальше в программе идет не совсем так, т.к. следующее простое число равно 5, а у вас 4.
http://ru.wikipedia.org/wiki/Числа_Мерсенна
1, 3, 7, 15, 31, 63, 127, 255, 511, 1023
В моём коде ничего убирать не надо было
0
BukToOp
0 / 0 / 0
Регистрация: 05.03.2013
Сообщений: 11
05.03.2013, 15:01  [ТС] #13
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
В моём коде ничего убирать не надо было
Я говорил не про ваш код.
В моем случае нужно возводить двойку в степень простых чисел, поэтому я и пытался найти простые числа, а потом уже возвести в степень. Т.е. я и говорю про вторую последовательность Мерсенна.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2013, 15:01
Привет! Вот еще темы с ответами:

Почему программа не выводит число? - C++
Работаю на visual studio 2010 Программа выводит пустую консоль. В чем дело, помогите пожалуйста.

Почему выводит неправильное ,длинное число? - C++
я новичок,учу по книге.там задано #include &lt;stdio.h&gt; #include &lt;iostream.h&gt; int main(int nNumberofArgs, char* pszArgs) { int...

Класс: Почему неправильно считает и выводит на экран страшное число? - C++
Добрый вечер! Подскажите, пожалуйста, почему неправильно считает в строке 57 и выводит на экран страшное число? Может я что-то не дописала?...

Немогу разобраться - C++
Нужно записать в файл массив строк #include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &lt;windows.h&gt; #include &lt;winbase.h&gt; #include...


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

Или воспользуйтесь поиском по форуму:
13
Yandex
Объявления
05.03.2013, 15:01
Ответ Создать тему
Опции темы

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