Объединения
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
typedef в этом и был глюк (случайно удалил)... да так теперь все работает
как передать структуру DATA_RECORD data в функцию Table
Код: Выделить всё
void main (void)
{
DATA_RECORD data[10] = {0};
DATE release = {12, 6, 1999};
InitRecord(data[0], 1, "Шкворень", 36.00, 253691, 85.00, release);
Table(data);
}
void Table( DATA_RECORD data){
for (i = 0; i < CountRow; i++){
if (data[i].count.number == NULL){
break;
}
/*
тут выводиться таблица
*/
}
}
как правильно передать DATA_RECORD data в функцию Table
ругается на data
Код: Выделить всё
void main (void)
{
DATA_RECORD data[10] = {0};
DATE release = {12, 6, 1999};
InitRecord(data[0], 1, "Шкворень", 36.00, 253691, 85.00, release);
Table(data);
}
void Table( DATA_RECORD data){
for (i = 0; i < CountRow; i++){
if (data[i].count.number == NULL){
break;
}
/*
тут строка из структуры
*/
}
}
Передавать массив данных в функцию нужно по указателю. Ещё неплохо было бы добавить в качестве параметра функции число передаваемых элементов массива.
Твоя функция должна быть объявлена так:
И вызываться она должна будет так...
Твоя функция должна быть объявлена так:
Код: Выделить всё
void Table(const DATA_RECORD* data, int CountRow)
{
for (int i = 0; i < CountRow; i++)
{
if (data[i].count.number == 0)
{
break;
}
/*
тут выводиться таблица
*/
}
}
Код: Выделить всё
Table(data, 10);
Поумнеть несложно, куда труднее от дури избавиться.
да в принципе я так и сделал
а как вывести поля после указанной даты
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Чтобы установить порядок двух дат, нужно сделать следующее:
Код: Выделить всё
Сравнить года:
Если не равны, то порядок установлен.
Иначе сравнить месяцы:
Если не равны, то порядок установлен.
Иначе сравнить дни:
Если не равны, то порядок установлен.
Иначе даты равны.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
а если так
Код: Выделить всё
if (record.release.date.Year > year || (record.release.date.Year == year&&record.release.date.Month > mounth) || (record.release.date.Year == year&&record.release.date.Month == mounth&&record.release.date.Day > day)){
/*
выводим строку из структуры
*/
}
где ошибка при добавление данных
Код: Выделить всё
void addRecord(DATA_RECORD *data){
system("cls");
int i;
int CountRow_ = 0;
char *name_;
float weight_;
long index_;
float price_;
int day_;
int mount_;
int year_;
int dayMount[12] = { 31, 28, 31, 30, 31, 20, 31, 31, 30, 31, 30, 31 };
bool err = false;
for (i = 0; i < CountRow; i++){
if (data[i].count.number != NULL){
CountRow_++;
}
}
if (CountRow_ < CountRow){
printf("Добавить новую запись\n");
printf("Наименование:");
scanf("%s", &name_);
printf("Масса:");
scanf("%f", &weight_);
printf("Номер по каталогу:");
scanf("%d:", &index_);
printf("Цена:");
scanf("%f", &price_);
do{
if (err == true){
printf("ошибка при введении даты.");
err = false;
}
printf("Дата выпуска\n");
printf("день:");
scanf("%d", &day_);
printf("месяц:");
scanf("%d", &mount_);
printf("год:");
scanf("%d", &year_);
if (year_ % 4 == 0){
dayMount[1] = 29;
}
if (mount_ <= 0 || mount_ > 12){
err = true;
}
else{
if (day_ <= 0 || day > dayMount[mount_ - 1]){
err = true;
}
}
} while (err == true);
InitRecord(data[CountRow_], (long)CountRow_+1 , name_, weight_, index_, price_, DATE_s{ day, mount_, year_ });
}
}
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Это оно и есть.Kazanove писал(а):а если так
А поточнее можно, что за ошибка? Дебагер не помогает?Kazanove писал(а):где ошибка при добавление данных
P.S. А почему ты все вопросы пишешь без знака вопроса в конце? Клавиша "?" поломалась?

Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.