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

Записать в файл то простое число, которое есть общим для всех чисел - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помощь с фиксом ошибок http://www.cyberforum.ru/cpp-beginners/thread867573.html
#include <stdafx.h> //#define IS_WIN //Заккоментить этот дефайн, если для Linux-a #include <stdio.h> #include <pdh.h> #include <conio.h> #pragma comment(lib,"pdh.lib")
C++ Отсортировать массив по убыванию методом "пузырька" отсортировать массив по убыванию методом "пузырька". ПОМОГИТЕ с КОДОМ(С++) http://www.cyberforum.ru/cpp-beginners/thread867566.html
C++ Вывести на экран тех людей с одинаковым телефоном
Приветствую. Такая задача: дан файл, в котором есть поля - фамилия, инициалы, номер телефона. Отсортировать файл, по алфавиту (по полю фамилия), а потом вывести на экран тех людей, у которых одинаковые телефоны. С сортировкой проблем нет, а вот вывести на экран тех, у которых одинаковые телефоны - есть проблемы. #include <stdio.h> #include <iostream> #include <string.h> typedef struct...
C++ Сортировка массива
Здравствуйте! Вот имею такую задачу: Дано 2 массива a b, написать программу, которая изменяет данные массивы, в соответствии с правилом: наибольшие элементы с массива a b принимаются в качестве нового значения a, а меньшие - в b. Прошу помощи. Вот то, что смог реализовать я: #include <iostream> #include <conio.h> using namespace std; void main() { int b, a, i; for (i=0; i<5; i++)
C++ Определить позицию первого и последнего нуля в одномерном массиве http://www.cyberforum.ru/cpp-beginners/thread867533.html
Определить позицию первого и последнего нуля в одномерном массиве, использую цикл For. Например массив состоит из 10307, программа в ответе должна выдать, что первый ноль стоит на второй позиции, а последний ноль стоит на четвертой позиции. Помогите плиз решить данную задачу.
C++ многопточное перемножение матриц Решил проверить многопоточность при построчном перемножении матриц. Создал программку(проект в аттаче), в которой можно задать размер матриц и кол-во потоков. Проделав несколько измерений на разных машинах(1,2 и 4 ядерных) пришёл неоднозначным результатам. Пытаюсь набросать небольшой отчёт по ходу дела(черновик в аттаче). Вопщем интересует вот-что:ъ 1. Где прирост производительности от 50 до... подробнее

Показать сообщение отдельно
edw1n
7 / 7 / 1
Регистрация: 12.11.2012
Сообщений: 114
19.05.2013, 13:51  [ТС]     Записать в файл то простое число, которое есть общим для всех чисел
Сделал, но есть много мелочей, с которыми нужна помощь.

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <stdio.h>
#include <iostream>
#include <string.h>
 
int GCD (int a,int b,int n)
    { int tmp;
      while (b)
            { a %= b;
              tmp=a;
              a=b;
              b=tmp;
            }
      int z;
      if(n - 1 >= 0)
           { scanf ("%d", &z);
             return GCD(a,z,n--);
           }
      return a;
    }
 
void PrintFile (char*filename, int k)
     { FILE*fp;
       int i;
       fp=fopen (filename, "r+b");
       if (!fp)
          { puts ("File isn't opened");
          }
       for (int j=0; j<k; j++)
           { fread (&i,sizeof(int),1,fp);
             printf ("%d ", i);
           }
       printf ("\n");
       fclose(fp);
     }
 
int main (void)
    { int n, x, y, t;
      char filename[128];
      puts ("Enter filename");
      gets (filename);
      printf ("Enter n: ");
      scanf ("%d", &n);
      printf ("Enter numbers: ");
      scanf ("%d%d", &x,&y);
      printf ("GCD is: %d\n", GCD(x,y,n-2));
      t=GCD(x,y,n-2);
      FILE*fp;
      fp=fopen (filename, "w+b");
      if (!fp)
         { puts ("File isn't opened");
         }
      int i=2;
      while(i<=t)                               //Факторизация НОД
                 { if(t%i==0)
                   { printf("%d ",i);
                     fwrite (&i,sizeof(int),1,fp); //Записываем в файл наше простое число
                     t/=i;
                   }
                   else
                       i++;
                 }
      int k=i;
      printf ("\n");
      fclose(fp);
      PrintFile (filename, k);
      system ("pause");
      return 0;
    }
К примеру для чисел 12 и 24, отлично находит НОД, разлаживает его на простые числа и записывает их в файл.
Для чисел 12, 16, 18 вылетает ошибка сегментации.
Когда, к примеру, НОД - простое число, то вообще ничего не происходит.

А так же надо записывать в файл простые числа без повторений.
Помогите, пожалуйста.
 
Текущее время: 06:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru