Консультация № 66814
13.12.2006, 13:59
0.00 руб.
0 1 1
Здравствуйте, уважаемые эксперты, помогите пожалуйста решить задачу в С ++, тема - файлы:

Дан файл натуральных чисел f. Записать в файл g все простые числа из файла f в порядке убывания.

Большое спасибо!

Обсуждение

Неизвестный
14.12.2006, 03:01
общий
это ответ
Здравствуйте, Bra!
Вообще-то такой вопрос уже был (66814) и я на него отвечал, но если надо держи ещё раз.

Входные данные:

1 12 13 17 18 19 32 123 21 2 6 7

Выходные данные:

19 17 13 7 2 1

Приложение:
#include <vector>#include <algorithm>#include <functional>#include <stdio.h>using namespace std;bool is_simple_number(unsigned int number) { for(int i = number-1; i>1; i--) if(number % i == 0) return false; return true;}int main(int argc, char* argv[]) { int i; int size; FILE *f; FILE *g; if((f = fopen("f.txt", "r")) == NULL) { printf("Input file reading error"); return 0; } vector<int> vf; vector<int> vg; while(fscanf(f, "%d", &i) != EOF) vf.push_back(i); fclose(f); size = vf.size(); for(i=0; i<size; i++) { if(is_simple_number(vf[i])) vg.push_back(vf[i]); } sort(vg.begin(), vg.end(), greater<int>()); if((g = fopen("g.txt", "w+")) == NULL) { printf("Output file reading error"); return 0; } size = vg.size(); for(i=0; i<size; i++) fprintf(g, "%d ", vg[i]); fclose(g); return 0;}
Форма ответа