Метод Виженера - исправить код - C (СИ)
Формулировка задачи:
Помогите исправить ошибку в коде.
#include "stdio.h" #include "conio.h" #include "clocale" #include "string.h" int const Kol=24; char X[Kol]="abcdefghiklmnopqrstvxyz"; char Buf[Kol][Kol]={NULL}; int i=0,j=0,K,N; void Table() { for(i=0;i<Kol;i++) { for(j=0;j<Kol;j++) { K=i+j; if(K>=Kol) K=K-Kol; if((i!=0&&K==0)||(i>=2&&K==1)||(i>=3&&K==2)||(i>=4&&K==3)||(i>=5&&K==4)||(i>=6&&K==5)||(i>=7&&K==6)||(i>=8&&K==7)||(i>=9&&K==8)||(i>=10&&K==9)||(i>=11&&K==10)||(i>=12&&K==11)||(i>=13&&K==12)||(i>=14&&K==13)||(i>=15&&K==14)||(i>=16&&K==15)||(i>=17&&K==16)||(i>=18&&K==17)||(i>=19&&K==18)||(i>=20&&K==19)||(i>=21&&K==20)||(i>=22&&K==21)||(i>=23&&K==22)) Buf[i][j-1]=X[K]; else Buf[i][j]=X[K]; } } /*for(i=0;i<Kol;i++) { for(j=0;j<Kol;j++) { printf("%c",Buf[i][j]); } printf("\n"); }*/ } void main() { setlocale(LC_ALL,"Russian"); Table(); char Hf[100]={NULL}, Ob[100]={NULL}, Key[4]={NULL}; printf ("Ведите ключевое слово "); for(i=0;i<3;i++) { scanf("%c",&Key[i]); } printf ("Введите текст "); for(i=0;i<6;i++) { scanf("%c",&Hf); } int G,M_Hf, M_Key,p=0,p1=0; for(G=0; G<strlen(Hf);G++) { i=0; j=0; while(i!=Kol) { if(Buf[0][i]==Hf[p]) {M_Hf=i; p++;} else i++; } if(p1>strlen(Key)) p1=0; while(j!=Kol) { if(Buf[i][0]==Key[p1]) {M_Key=j;p1++;} else j++; } Ob[G]=Buf[M_Hf][M_Key]; } getch(); }
Решение задачи: «Метод Виженера - исправить код»
textual
Листинг программы
Парта - начальное значение Парта _бс_б __т__ Пбттб - исходное значение
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д