Извините за то, что открыла еще одну тему, прежде чем я разрешил свою другую проблему. Этот вопрос больше. Я не знаю, поймет ли кто-нибудь мой код, потому что я перевел его на английский. Программа работает как список заказов из Интернета или что-то в этом роде. Вы можете добавлять заказы, удалять их, сортировать по идентификатору или дате, вы можете их сохранять и загружать. Сортировка по дате - моя проблема. Например, я добавляю такие даты, как 2013, 2011 и 2012 годы. Когда я пытаюсь их сортировать, ничего не происходит, они остаются в том же порядке. Если кто-то понимает этот вопрос, скажите мне, в чем проблема? Это школьный проект, и я должен его исправить до завтра. Может ли кто-нибудь помочь мне с этим?Сортировка по дате выпуска
// according = 1 (Date) 2 = (Price)
void sort(int accor)
{
int i,j,replace=0;
ORDER *Pom;
for(i=0;i<Piece-1;i++){
for(j=0;j<Piece-1;j++){
if(according == 1){
if(strcmp(Item[j]->Date, Item[j+1]->Date) > 0)
replace = 1;
else
replace = 0;
}else if(according == 2){
if(Item[j]->Price > Item[j+1]->Price)
replace = 1;
else
replace = 0;
}
if(replace){
Pom = Item[j];
Item[j] = Item[j+1];
Item[j+1] = Pom;
}
Несовершеннолетний придираться: 'Пункт [J +] -> date' должен быть' Item [J + 1 ] -> date'. – user2448027
Попробуйте использовать 'i' вместо' j + 1' и перед заменой элементов проверьте, что 'i' не равно' j'. Надеюсь, это поможет. – user2448027
Какой тип 'Item []'? Массив 'ORDER *'? –