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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2010, 23:32   #1
LtB
Пользователь
 
Регистрация: 16.10.2010
Сообщений: 12
По умолчанию Траблы с Алгоритмом!)

Удалить в последовательности символов все запятые до первой точки, а далее заменить вcе цифры 3 и 6 на знак +. Конец последовательности ‘!’.

Код:
{ char c;
 int n;
 n=0;
 c=' ';

 while(c!='!')
 {scanf("%c",&c);
  if (c=='.') n=1;
  if (n==0) {if (c!=',') printf ("%c",c);}
  else  if(c=='3' || c=='6') printf("+"); else printf("%c",c);
 }
}
помогите написать алгоритм

Последний раз редактировалось Stilet; 01.11.2010 в 09:46.
LtB вне форума Ответить с цитированием
Старый 01.11.2010, 00:41   #2
dxdy
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 78
По умолчанию

LtB а можете сказать для начала условие задачи...
Я не волшебник, я еще только учусь ٩(๏̯͡๏)۶
dxdy вне форума Ответить с цитированием
Старый 01.11.2010, 00:53   #3
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

Да, условие - что должна делать программа? А так не совсем, допустим мне, ясно что хотите получить.
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Старый 01.11.2010, 01:02   #4
LtB
Пользователь
 
Регистрация: 16.10.2010
Сообщений: 12
По умолчанию

Короче, должна убрать все запятые,которые встречаются до первой '.' , после этого если в строке(последовательности) попадается '3' или '6' , она их заменяет на '+' и это все она делает пока не встретит '!' как только встречает,то печать на экран и выход из цикла.

Последний раз редактировалось LtB; 01.11.2010 в 01:07.
LtB вне форума Ответить с цитированием
Старый 01.11.2010, 01:09   #5
dxdy
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 78
По умолчанию

Код:
#include <iostream>

//-----------------------
int find(char *str, char ch){
	for(int i = 0; str[i] != '\0'; ++i){
		if( str[i] == ch )
			return i;
	}
	return -1;
}

//------------------------
char *remove(char *str, int pos, int step){
	for(int i = pos; str[i] != '\0'; ++i){
		str[i] = str[i+step];
	}
	return str;
} 

//-------------------------
char *changed(char *str){
	int pos = find(str,'.');
	if( pos > -1 ){
		int i = 0;
		while( i < pos ){
			if( str[i] == ',' ){
				str = remove(str,i,1);
				--pos;
			}else{
				++i;
			}
		}
	}

	for(int i = 0; str[i] != '\0'; ++i){
		if( str[i] == '3' || str[i] == '6' )
			str[i] = '+';
	}
	return str;
}

int main(){
	char str[] = ",16,,3abc,4.,!";
	std::cout << changed(str) << std::endl;
	return 0;
}
не тестировал, но алгоритм в принципе верен..только мое условие, если нет точки в слове, то запятые не удаляем!
Цитата:
Короче, должна убрать все запятые,которые встречаются до первой '.' , после этого если в строке(последовательности) попадается '3' или '6' , она их заменяет на '+' и это все она делает пока не встретит '!' как только встречает,то печать на экран и выход из цикла.
пока писал программу уже условие задачи немного поменяли, надеюсь сами исправите недочет
Я не волшебник, я еще только учусь ٩(๏̯͡๏)۶

Последний раз редактировалось dxdy; 01.11.2010 в 01:12.
dxdy вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Траблы с ноутбуком nik_prytkov Помощь студентам 8 03.10.2010 13:46
траблы с кодом на C -COREY- Помощь студентам 1 12.12.2009 21:50
Траблы с видеообеспечением PA3HOE Компьютерное железо 2 18.11.2009 22:44
Траблы с richedit Stanislav Общие вопросы Delphi 6 23.01.2009 00:25
Траблы с инетом Romanus Свободное общение 2 09.08.2007 11:25