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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.02.2012, 16:32   #1
Horizon
 
Аватар для Horizon
 
Регистрация: 28.02.2012
Сообщений: 4
По умолчанию "Кодирование" строки

Всем привет. Начну с того что я создаю здесь тему впервые, прошу сильно меня не пинать.
Вобщем, получила задание написать программу, которая "кодирует" строку методом "простой" перстановки...
Пользователь вводит слово и код из 8 цифр. А программа выдает закодированное слово. Принцип такой:
допустим, слово введено "последовательность", а код ввели "58137462". Пишем:
58137462
последов
ательнос
ть______
т.е. записываем строки по длине кода, оставшееся заполняем... препод сказала например вот этим - "_".
Далее - внимание - по столбцам:
1: се_
2: вс_
Итого получаем:
се_вс_лл_дн_патоо_еь_оть.
Думаю, вам понятно.
Я написала код и столкнулась с проблемой:
есть массив, только вот цикл, которым я хочу достичь искомого результата, работает некорректно.
Он почему-то срабатывает явно большее количество раз, чем единиц в коде(.
Прошу помогите мне разобраться, просто покажите почему оно выдает не то что я хочу, а дальше я сама.
Мое творение:
Код:
#include <iostream.h>
#include <conio.h>
#include <string.h>
void main()
{
char code[50];
char mys[1];
char d[10];
char masy[25][25];
int ch,p;
clrscr();
ch=0;
cout<<"Vvedite slovo kotoroe nado zakodirovat':"<<endl;
cin>>code;
cout<<"Vvedite kod (8 cifr):"<<endl;
cin>>d;
cout<<"Vvedite kakim simvolom zapolnyat' probeli (1 simbol):"<<endl;
cin>>mys;
cout<<"Vashe slovo: "<<code<<endl;
//podshitaem kol-vo strok
for (int i=0;i<strlen(code);i++)
if ((i%8)==0) ch++;
cout<<"Dlinna slova = "<<strlen(code)<<endl;
//zapolnyaem ostavshiesya probeli (p)
p=ch*8-strlen(code);
for (i=0;i<p;i++)
strncat (code, mys, 1);
cout<<"Kol-vo strok = "<<ch<<endl;
//Vivodim na ekran v vide tablici to chto poluchilos'
cout<<d;
for (i=0;i<strlen(code);i++)
{
if ((i%8)==0) cout<<endl;
cout<<code[i];
}
cout<<endl;
//formiruem massiv simvolov
for (int j=0;j<ch;j++)
for (i=0;i<8;i++)
masy[j][i]=code[i+j*8];
//vivodim massiv na ekran
for (j=0;j<ch;j++)
{
for (i=0;i<8;i++)
cout<<masy[j][i]<<" ";
cout<<endl;
}
cout<<endl;
//samo kodirovanye
for (i=0;i<8;i++)
if (d[i]=='1')
{for (j=0;j<ch;j++) cout<<masy[i,j];}
getch();
}
Р.S. Простите за много букв, но я уверенна что вы мне поможете. Сроки сдачи не поджимают (начало семестра же)

Последний раз редактировалось ACE Valery; 28.02.2012 в 17:19.
Horizon вне форума Ответить с цитированием
Старый 02.03.2012, 09:51   #2
Horizon
 
Аватар для Horizon
 
Регистрация: 28.02.2012
Сообщений: 4
По умолчанию

Спасибо форумчанам за ответы.................(((
Сделала сама. Тему можно закрывать
Horizon вне форума Ответить с цитированием
Старый 02.03.2012, 12:40   #3
microbit
Форумчанин
 
Аватар для microbit
 
Регистрация: 26.09.2011
Сообщений: 176
По умолчанию

Зато сколько безценного опыта
microbit вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. воваава Помощь студентам 3 01.12.2011 12:50
задачи в Си на "Строки" и "Структуры" Ховард Помощь студентам 2 14.06.2011 11:10
Как обойти "преобразование типа из "string" в "float" невозможно" lexluter1988 Помощь студентам 1 07.08.2010 12:23
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04