Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2009, 18:08   #1
svetlanka
Новичок
Джуниор
 
Регистрация: 22.03.2009
Сообщений: 2
Восклицание Шифровка текста, ошибки (С/С++)

это программа для шифрования текста по методу шифрующие таблицы с двойной перестановкой. использовала двумерный массив. программа в принципе работает, но когда запускаешь и после ввода текста появляется таблиц вокруг нее непонятные "калябаляки". как от них можно избавиться или это какая то ошибка?
Код:
#include <stdio.h>
#include <conio.h>
#define NMAX 6
main ()
{
 char a[NMAX][NMAX];
 char b[NMAX][NMAX];
 int AB[NMAX];
 int n=5;
 int i;
 int j;
 int k;
 printf ("\n VVEDITE CHISLOVOI KLUCH:\n");
 for (k=0; k<n; k++)
 scanf ("%d", &AB[k]);
 printf ("\n VVEDITE TEXST SOOBCHENIYA:\n");
 for(i=0; i<n; i++)
   for(j=0;j<n; j++)
   scanf ("%s", &a[i][j]);
printf ("\n TABLICA OTKRITOGO TEKSTA: \n");
 for (i=0; i<n; i++)
 {putchar ('\n');
   for (j=0; j<n; j++)
      printf ("%s ", a[i][j]);
      }putchar ('\n');
      printf ("\nTABL POSLE PERESTANOVKI STOLBCOV:");
 for (i=0; i<=n; i++)
       for (j=0, k=0; j<=n && k<=n; j++, k++)
         b[i][AB[k]]=a[i][j];
     for (i=0; i<=n; i++)
     {putchar ('\n\n');
        for (j=0; j<=n; j++)
      printf ("%c ", b[i][j]);
      }
 printf ("\nTABL POSLE PERESTANOVKI STROK:  \n");
      for (i=0; i<=n; i++)
       for (j=0, k=0; j<=n && k<=n; j++, k++)
         b[AB[i]][AB[j]]=a[i][j];
       for (i=0; i<=n; i++)
 {putchar ('\n');
   for (j=0; j<=n; j++)
      printf ("%c ", b[i][j]);
      }
 printf ("\nDESHIFROVANIE:\n");
      for (i=0; i<n; i++)
       for (j=0; j<n; j++)
      a[i][j]=b[AB[i]][AB[j]];
      for (i=0; i<n; i++)
      {putchar ('\n');
       for (j=0; j<n; j++)
      printf ("%c ", a[i][j]);
      }
 printf ("\nBIXOD-LYBAYA KLAVISHA:");
      getch();
   }

Последний раз редактировалось rpy3uH; 23.03.2009 в 08:59.
svetlanka вне форума Ответить с цитированием
Старый 22.03.2009, 21:15   #2
Svetlag
Пользователь
 
Аватар для Svetlag
 
Регистрация: 24.02.2009
Сообщений: 85
По умолчанию

вот где могут быть ошибки:
1. Обнулите сначала массивы и определитесь, вы работаете с символами
Код:
char a[NMAX][NMAX];
char b[NMAX][NMAX];
for (i=0; i<NMAX; i++)
for (j=0; j<NMAX; j++)
{
  a[i][j] = 0;
  b[i][j] = 0;
}
scanf ("%c", &a[i][j]);
printf ("%c ", b[i][j]);
или со словами.
Код:
char a[NMAX][NMAX][50];
char b[NMAX][NMAX][50];
for (i=0; i<NMAX; i++)
for (j=0; j<NMAX; j++)
{
  a[i][j][0] = 0;
  b[i][j][0] = 0;
}
scanf ("%s", &a[i][j]);
printf ("%s ", b[i][j]);
2.Зачем
Код:
for (j=0, k=0; j<=n && k<=n; j++, k++)
ведь условия для j и k одинаковы. Поэтому достаточно
Код:
for (j=0; j<=n; j++)
Svetlag вне форума Ответить с цитированием
Старый 23.03.2009, 10:25   #3
svetlanka
Новичок
Джуниор
 
Регистрация: 22.03.2009
Сообщений: 2
По умолчанию

спасибо болльшое за помощь=)
svetlanka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шифровка Witaliy Общие вопросы Delphi 2 01.05.2008 21:18
Шифровка текста С++ deathsurgut Общие вопросы C/C++ 3 01.10.2007 18:58
Шифровка паролем-HELLP DKbelRoma Безопасность, Шифрование 3 13.09.2007 16:20
Шифровка паролей MD5 - пароли и хеши Hallo Безопасность, Шифрование 22 26.07.2007 13:53