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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2009, 12:54   #1
Wertex
 
Регистрация: 17.09.2009
Сообщений: 6
По умолчанию Структуры

В общем задание такое:"Напишите программу, определяющую, имеет ли вводимая символьная строка вид: xCy, где x есть строка, состоящая из букв А В, а y - строка абратная строке x (т.е. если X=ABABBA, то Y=ABBABA). При чтении можно считывать каж дый элемент строки." Вот что у меня получилось
Код:
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#define OK "CTPokA iMEET BiD xCy\n"
#define NOT "CTPokA He iMEET BiD xCy\n"
void STR1 (char *st_1, int size_1, int i, int j);
int main()
{
	char *str, s[80];
   gets ( s );
   str = s;
   int size = strlen (str), i=0;
   while (i<size) {
   	cout<< str [i] <<" ";
      i++;
   }
   cout<<"\n";
   int n, m;
   if ( size % 2 == 0 ) {
   	n = size/2;
   	m = n + 1;
   	STR1 (str, size, n, m );
   }
   else {
   	n = size/2;
   	m = n + 2;
   	STR1 (str, size, n, m );
   }
 	getch ();
return 0;
}

void STR1 (char *st_1, int size_1, int i, int j) {

	for(; i>=1,j<=size_1 ; i--,j++) {
   	if ( st_1[i] == st_1[j])	{
         printf(OK);
      }
      else {
      	printf(NOT);  break; }
   }
}
Сильно не смейтесь, сам понимаю что бред написал
Еще один момент, из задания:"...Тематика первой контрольной работы охватывает вопросы линейных статических и полустатических структур ..."
P.S. Прошу направить на правильное решение задачи.
Wertex вне форума Ответить с цитированием
Старый 30.10.2009, 13:20   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от Wertex Посмотреть сообщение
Сильно не смейтесь, сам понимаю что бред написал
Даже если сами написали и все правильно это плохо.


Цитата:
P.S. Прошу направить на правильное решение задачи.
1. Используйте комментарии. Это очень сильная вещь, которой пренебрегают практически все начинающие. Распишите что делает каждая Ваша строчка (причем не как операторы языка С, а как элемент алгоритма).
То есть типа:
Объявление функции STR1
Главная функция
Для чего нужен такой-то цикл и пр.
Внимательно прочтите полученные комментарии и сравните с тем как Вы представляете работу алгоритма.
2. Отладка с использованием контрольных значений. Это значит, что вам надо вручную прорешать алгоритм. Задаете значение и сравниваете его с полученным вручную.
3. Пошаговая отладка - просматриваете значения переменных после каждой выполненной строчки программы. Это же относится и к вызову функции. То есть зная какие данные Вы внесли в функцию, Вы можете предполагать возвращаемый ею результат (в Вашем случае она печатает результат, а не возвращает в программу).

Для решения Вашего вопроса этих трех китов вполне достаточно.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 30.10.2009, 13:30   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

пример строки в студию.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.10.2009, 13:52   #4
Wertex
 
Регистрация: 17.09.2009
Сообщений: 6
По умолчанию

Ну, я так понял, чтобы левая и правая части строки зеркально совпадали, напр. CACASACAC или CACAACAC.

Цитата:
Сообщение от Utkin Посмотреть сообщение
Даже если сами написали и все правильно это плохо.




1. Используйте комментарии. Это очень сильная вещь, которой пренебрегают практически все начинающие. Распишите что делает каждая Ваша строчка (причем не как операторы языка С, а как элемент алгоритма).
То есть типа:
Объявление функции STR1
Главная функция
Для чего нужен такой-то цикл и пр.
Внимательно прочтите полученные комментарии и сравните с тем как Вы представляете работу алгоритма.
2. Отладка с использованием контрольных значений. Это значит, что вам надо вручную прорешать алгоритм. Задаете значение и сравниваете его с полученным вручную.
3. Пошаговая отладка - просматриваете значения переменных после каждой выполненной строчки программы. Это же относится и к вызову функции. То есть зная какие данные Вы внесли в функцию, Вы можете предполагать возвращаемый ею результат (в Вашем случае она печатает результат, а не возвращает в программу).

Для решения Вашего вопроса этих трех китов вполне достаточно.
Cпасибо за советы.

Последний раз редактировалось Stilet; 30.10.2009 в 14:33.
Wertex вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ структуры KOLYTFR Помощь студентам 2 24.05.2009 19:02
Структуры BaSk Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 16.05.2009 15:33
Структуры в C++ Wia Помощь студентам 7 18.04.2009 15:51
Структуры в С++ bloo[d] Помощь студентам 1 30.01.2008 22:27