В чем проблемма ? У меня после gets(X) как я только хочу ввести строку, нажимаю и прога закрывается. В тексте показано это место <<<<< #include "stdafx.h" #include "string.h" #include "math.h" #include int main() { char C[28]="_abcdefghijklmnopqrstuvwxyz"; int D[28]={0,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}; int Q[1000]; int A[100][100]; // Вводимая матрица. char X[1000]; // Кодируемая строка. int B[100][100]; // Шифрованый текст через номера. int S[100][100]; int i,j,k,a,p=0,n; printf("Vveditdffdde razmernost matrici A: "); scanf("%i",&n); // ввод размерности квадратной матрицы А. for(i=0;i { for(j=0;j { printf("Vvedite element matrici A[%i][%i]:",i,j); scanf("%i",&A[j]); // ввод матрицы А. } } printf("Vvedite frazu dla shifrovki: "); gets(X); <<<<<<<<<< a=(strlen(X) % n); if(a==0) { for(i=0;i { for(j=0;j<27;j++) { if(X==C[j]) Q=D[j]; } } k=strlen(X)/n; //определение количества строк for(i=0;i { for(j=0;j { S[j]=Q[p];p++; //заполнение матрицы S, номерами из матр. Q. } } for(i=0;i { for(j=0;j { if(j==(k-1)) { printf(" %i \n",S[j]); } else printf(" %i ",S[j]); } } } else {printf("Vi vveli necorrektnyu frazu");} getch(); return 0; } } PS: Когда я использую вместо gets() ,scanf() то все работает, вот только scanf() не читает пробелы в строке, поэтому вместо пробела пришлось использовать '_'.