Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Для новичков > программа по удалению пробелов на СИ! |
Автор: barboss 1.6.2009, 16:26 |
помогите пожалуйста((( написала программу по удалению пробелов. а она, зараза, не работает. вот вроде по логике все должно, а все равно зацикливает и не могу понять почему( оговорка 1- на си. и 2- код подразумевает, что студент, т.е. я) знает только вводную главу и еще не знаком с функциями кроме ввода-вывода и указателями( вот код: #include<stdio.h> #include <string.h> int main() { int const n=256; int i=0,j=0,flag=0; char str[n]; printf("please input your string\n"); fgets(str,256,stdin); if(str[0]!='\n' && str[0]!=' ') flag=1; else if(str[0]==' ' && str[0]!='\n') flag=0; for(i=1;str[i]!='/n';i++){ if (str[i]!=0 && flag==1){ while(str[i]=str[i+1]) i++;} else if(str[i]==' ' && flag==0){ i=j; while(str[j]=str[j+1]) j++;} } putchar(str[i]); putchar(' '); } |
Автор: Dmi3ev 1.6.2009, 16:37 | ||
я бы написал функцию для этого дела, типа этой
|
Автор: barboss 1.6.2009, 16:44 |
дело в том. что в этой программе нельзя использовать указатели и функции кроме ввода-вывода(( поэтому я там ввела два флага и написала два цикла типа при флаге 1 и при флаге 0. по идее цикл при флаге 1 у меня должен просто сканировать символы до момента пока на попадет на пробел и флаг не станет ноль, ка ктолько флаг нудевой, то он должен сдвигать все правые символы влево до тех пор пока не встретит флаг 1.но он зацикливает и ничего не выводит в результате. |
Автор: Dmi3ev 1.6.2009, 16:52 | ||
|
Автор: barboss 1.6.2009, 16:58 |
так всек просто оказывается)) спасибо!!!!! ![]() |
Автор: Dmi3ev 1.6.2009, 17:07 | ||
пожалуйста! удачной сессии! |
Автор: barboss 1.6.2009, 17:41 |
это не сессия это нам в школе задают)) одна задачка в классе и 4 на дом)) |
Автор: zim22 1.6.2009, 17:55 |
какой класс? первый? ![]() |
Автор: barboss 3.6.2009, 09:22 |
Ну типа того)) подготовительный)) ![]() |