#1 09.03.10 23:29
Задачка по С++
Код::
#include <stdio.h>
#include <conio.h>
#include <string.h>
//Замена каждых трех символов вводимой строки (цепочек), вторым из которых является ^,
//последовательностью символов, коды которых убывают на 2 от первого до третьего символа цепочки;
//вывода результата.
void main()
{
char str[100];
char cAfter,cBefore;
int iIndexSymbol;
//ввод строки
printf("vvedite stroku simvolov i najmite ''enter'':\n");
gets(str);
int iLenStr=strlen(str);
//просмотр всех символов строки
for(int i=0;i<iLenStr;i++)
{
//если очередной символ равен ^, то
if (str[i]=='^')
{
//программа сохраняет символ находящийся перед ^ и сохраняет символ находящийся после ^
cAfter=str[i+1];
cBefore=str[i-1];
//далее следует сравнение предыдущего и последующего символа,если последующий символ больше предыдущего,программа не
if (cBefore>cAfter)
//предпринимает никаких действий и продолжает сканирование строки и вывод символов,
//если предыдущий символ больше последующего,
//то начинается цикл:программа вычитает из кода предыдущего символа "2" и выводит результат на экран,
{
while (cBefore > cAfter)
{
cBefore -= 2;
if(cBefore > cAfter)
printf("%c",cBefore);
}
if(cBefore == cAfter)
i += 1;
}
//далее программа сравнивает
//получившийся символ и последующий,если получившийся символ больше последующего,то цикл повторяется
//(из кода получившегося числа вычитается "2"),если получившееся число меньше или равно последующему,
//то программа продолжает сканирование строки и вывод символов
} else
printf("%c",str[i]);
}
getch();
}Программа должна работать так:
например воодишь 8^2 должен сделать 8642
но программа работает только когда коды одинаковой чётности
а если они разной, то она почему то заменяет последний символ
например: 8^3 то выводит 8642 заместо 8643
Вот не могу разорбраться в чём ошибка.
Offline

