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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2011, 19:59   #11
andygarcia86
Пользователь
 
Регистрация: 18.10.2011
Сообщений: 10
По умолчанию

Mahin,Вы пишете,что при вводе в поток нельзя присваивать,а разве данным действием Вы не присваиваете?
Цитата:
cout << "введите имя: ";
cin >> Znak[i].name;
Т.е. int day,mounth,year так и остаются в структуре,а остальное будет иметь вид?
Цитата:
cout << "введите фамилию: ";
cin >> Znak[i].familya;
cout << "введите имя: ";
cin >> Znak[i].name;
cout << "введите знак гороскопа: ";
cin >> Znak[i].znak;
andygarcia86 вне форума Ответить с цитированием
Старый 21.10.2011, 20:16   #12
Mahin
Пользователь
 
Регистрация: 18.11.2009
Сообщений: 39
По умолчанию

Цитата:
Т.е. int day,mounth,year так и остаются в структуре,а остальное будет иметь вид?
нет, я имею ввиду что для каждого поля нужно реализовать приведённый выше принцип. То есть дату тоже необходимо ввести, но не присваивать ей строку, как это сделано у вас.

Насчёт присваивания: я говорю что нельзя использовать оператор присвуаивания "=" при вводе в поток cin. Он используется для ввода с клавиатуры. Или я чего-то не знаю?

Кстати, желательно ввод, обработку и вывод массива распихать по отдельным функциям, это упростит отладку.

Ещё я почитал внимательнее текст задания, там говорится что все элементы массива, кроме последнего, заполняются в коде программы, но это мягко говоря неудобно, может имелась ввиду реализация ввода из файла?
Mahin вне форума Ответить с цитированием
Старый 21.10.2011, 20:46   #13
andygarcia86
Пользователь
 
Регистрация: 18.10.2011
Сообщений: 10
По умолчанию

То есть дату тоже необходимо ввести, но не присваивать ей строку, как это сделано у вас.А как тогда это будет выглядеть?

Цитата:
Кстати, желательно ввод, обработку и вывод массива распихать по отдельным функциям, это упростит отладку.
Например как?

Цитата:
Ещё я почитал внимательнее текст задания, там говорится что все элементы массива, кроме последнего, заполняются в коде программы, но это мягко говоря неудобно, может имелась ввиду реализация ввода из файла?
Может быть и так,я знаю данный язык довольно плохо,поэтому и прошу помощи помочь,чтобы понять и разобраться.
andygarcia86 вне форума Ответить с цитированием
Старый 21.10.2011, 22:02   #14
Mahin
Пользователь
 
Регистрация: 18.11.2009
Сообщений: 39
По умолчанию

Чтобы понять и разобраться лучше почитайте учебник Павловской "С/С++ Программирование на языке высокого уровня", там всё довольно доступно изложено. Я всего лишь студент, так что могу ошибаться.

а дата вводится так же как и остальное, но при вводе используются цифры. Так как поля даты объявлены как целочисленные значения, из потока они запишутся целочисленными значениями.

функции можно реализовать примерно так:

Цитата:
struct tsZnak;
{
char familya;
char name;
char znak;
int day,mounth,year;
my_print()
{cout <<familya<<" "<<name<<" "<<znak<<" "<<day<<" "<<mounth<<" "<<year<<endl;}
};

tsZnak* sort(*tsZnak); //объявление функции

void main(){
tsZnak Znak[20];
...
// тут вводим значения в массив
...
Znak=sort(Znak); //сортируем массив функцией sort
...
//остальной текст программы
...
}

tsZnak sort(tsZnak *Zn){ //Описание функции. Zn - массив, передаваемый функции для сортировки
//сюда пишем алгоритм упорядочивания по дате
return Zn; //возвращаем упорядоченный массив в основную программу
}
Если чего-то не то написал, сильно не ругайте, у меня тут уже 5 утра, башка не варит(

Последний раз редактировалось Mahin; 21.10.2011 в 22:18.
Mahin вне форума Ответить с цитированием
Старый 21.10.2011, 23:03   #15
andygarcia86
Пользователь
 
Регистрация: 18.10.2011
Сообщений: 10
По умолчанию

Цитата:
struct tsZnak;
{
char familya;
char name;
char znak;
int day,mounth,year;
my_print()
{cout <<familya<<" "<<name<<" "<<znak<<" "<<day<<" "<<mounth<<" "<<year<<endl;}
};

tsZnak* sort(*tsZnak); //объявление функции

void main()
{
tsZnak Znak[20];
cout << "введите фамилию:Иванов ";
cin >> Znak[i].familya;
cout << "введите имя:Ваня ";
cin >> Znak[i].name;
cout << "введите знак гороскопа:Стрелец ";
cin >> Znak[i].znak;

Znak=sort(Znak);
Какой текст программы должен быть здесь?
}
сюда пишем алгоритм упорядочивания по дате-как выглядеть будет?
возвращаем упорядоченный массив в основную программу-и куда будет вставлен упорядоченный массив?
Что означает void main(),вроде пишем же int main()?
andygarcia86 вне форума Ответить с цитированием
Старый 22.10.2011, 05:20   #16
Mahin
Пользователь
 
Регистрация: 18.11.2009
Сообщений: 39
По умолчанию

void, потому что main может ничё не возвращать, тогда нет необходимости писать в конце return 0;

Цитата:
Какой текст программы должен быть здесь?
ну собственно то что ещё в программе сделать надо (вывод и т.п.) это я написал чтобы показать что программа на этом не заканчивается.

Цитата:
и куда будет вставлен упорядоченный массив?
Znak=sort(Znak); - собственно тут он и вставляется, заменяя собой неупорядоченный массив.

алгоритм сортировки массива придумайте сами, или погуглите... да и на этом форуме данный вопрос поднимался неоднократно.
Mahin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массивы, структуры, на С++ andygarcia86 Помощь студентам 0 18.10.2011 16:04
структуры и массивы VSL Помощь студентам 0 14.02.2011 15:30
Структуры/записи/массивы Proger_1 Общие вопросы C/C++ 7 19.05.2010 21:33
структуры и массивы Dossym Помощь студентам 1 27.02.2010 19:30
структуры и массивы Dossym Помощь студентам 2 27.02.2010 19:18