Перебор всех комбинаций 3-хзначного ключа - C (СИ)
Формулировка задачи:
Приветствую дорогие!
Помогите реализоватьнебольшую
программку. Есть 3 вложенных цикла, которые реализую перебор всех комбинаций 3-хзначного ключа (от 000 до 222). Все возможные комбинации записываются в столбик в файл KEY.txt. KEY.txt: 000 001 002 010… Затем начинается следующий цикл. (количество повторов – это количество всех вариантов KEY). Необходимо сделать так, что бы в этом цикле считалась первая комбинации в массивX[3]=(000)
, обработалась, со следующим витком цикла считалась следующая комбинации и снова в массивX[3] (001)
…#include <conio.h> // Для очистки экрана #include <string.h> // Для работы со строками #include <stdio.h> // Для работы с файлами #include <math.h> // Для расчетов #include <dos.h> //Для паузы const int sizekey=3; // Константа ключ void main() // Главная функция { clrscr(); // очистка экрана int key[3], sizeS, size, X[3], i=0, j, u=0, z, S1, S2, S3, S4=0, error=0, q[3], buff; unsigned char a[100], b[100]; // Объявление переменных символьного типа FILE *f1, *f2;// Создание потоков данных f1=fopen("C.txt", "rt"); // Подключение потока данных C (считывание) f2=fopen("KEY.txt", "a+"); // Подключение потока данных KEY (запись) //Генирация ключа for(S1=0; S1<sizekey; S1++) { key[0]=S1; for(S2=0; S2<sizekey; S2++) { key[1]=S2; for(S3=0; S3<sizekey; S3++) { key[2]=S3; fprintf(f2, "%d%d%d\n", key[0], key[1], key[2]); // Запись в файл } } } for(i=0; i<27; i++) { //---Вот тут необходимо реализовать построчное занесение 3х знаков в массив X[3]. } fclose(f1); // Отключение потока данных f1 fclose(f2); // Отключение потока данных f2 getch(); }
Решение задачи: «Перебор всех комбинаций 3-хзначного ключа»
textual
Листинг программы
#include <conio.h> // Для очистки экрана #include <string.h> // Для работы со строками #include <stdio.h> // Для работы с файлами #include <math.h> // Для расчетов #include <dos.h> //Для паузы const int sizekey=3; // Константа ключ void main() // Главная функция { clrscr(); // очистка экрана int key[3], sizeS, size, X[3], i=0, j=0, u=0, z=0, S1, S2, S3, S4=0, error=0, q[3], buff; unsigned char a[100], b[100], c[81]; // Объявление переменных символьного типа FILE *f1;// Создание потоков данных f1=fopen("KEY.txt", "w"); // Подключение потока данных KEY (запись) //Генирация ключа for(S1=0; S1<sizekey; S1++) { key[0]=S1; for(S2=0; S2<sizekey; S2++) { key[1]=S2; for(S3=0; S3<sizekey; S3++) { key[2]=S3; fprintf(f1, "%d%d%d", key[0], key[1], key[2]); // Запись в файл } } } fclose(f1); // Отключение потока данных f1 FILE *f2;// Создание потоков данных f2=fopen("KEY.txt", "r"); // Подключение потока данных KEY (считывание) fscanf(f2, "%s", &c); // Считывание из файла printf("\nC: %s", &c); //Временно int schet=(int)strlen(c); // Вычисление длины строки schet=schet/sizekey; /// Деление длины строки на длину ключа, для определения повторов цикла printf("\nDlina: %d", schet); //Временно for(j=0; j<schet; j++) { for(i=0; i<sizekey; i++) { X[i]=(int)(c[u]-'0'); u++; } printf("\nX: %d%d%d", X[0], X[1], X[2]); delay(300); } fclose(f2); // Отключение потока данных f2 getch(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д