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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2010, 19:54   #1
silence_master
 
Регистрация: 14.12.2009
Сообщений: 5
По умолчанию сортировка массива структур

Здравствуйте!
При вводе записей бд возникает проблема: некоторые записи пропускаются...

Цитата:
#include <iostream>
#include <stdlib.h>
#include <conio.h>

struct object
{
char name[20];
int quan;
int weight;
char adress[30];
};

int main()
{
struct object *ob[5],*p;
int i,j,sort;

//zapolnenie
for(i=0;i<5;i++)
{
ob[i]=(struct object *)malloc(sizeof(struct object));
printf("\nEnter %d zapis`: ",i);
scanf("%s%d%d%s",ob[i]->name,&ob[i]->quan,&ob[i]->weight,ob[i]->adress);
}

printf("\nVvedite chislo dla sortirovki - ");
scanf("%d",sort);
//sort
for(i=0;i<5;i++)
for(j=i+1;j<5;j++)
if(ob[i]->weight>sort)
if(ob[i]->weight>ob[i]->weight)
{
p=ob[i];ob[i]=ob[j];ob[j]=p;
}
//printing results
printf("\nHave being sort massive: \n");
for(i=0;i<5;i++)
{
printf("\n%5s%5d%5d%7s",ob[i]->name,ob[i]->quan,ob[i]->weight,ob[i]->adress);
free(ob[i]);
}
system("PAUSE");
return 0 ;
}
Заранее благодарен!
Мне совсем не нужно вставать на цыпочки, чтобы поцеловать небо...
silence_master вне форума Ответить с цитированием
Старый 05.05.2010, 20:19   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Ну видимо имя или адрес состоит из более чем одного слова. Вот при последующих итерациях лишнии данные и сами заносятся. Пример ввода:
Иванов_Иван_Иваныч 36 15 Ленина_31_кв_529
eoln вне форума Ответить с цитированием
Старый 05.05.2010, 20:36   #3
silence_master
 
Регистрация: 14.12.2009
Сообщений: 5
По умолчанию

извините, не очень понял ваш ответ(
Смысл в том, что для первого члена структуры программа считывает все члены структуры, а для последующих - только имя..(
Мне совсем не нужно вставать на цыпочки, чтобы поцеловать небо...
silence_master вне форума Ответить с цитированием
Старый 05.05.2010, 21:03   #4
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Так как на скрине? scanf заносит данные в следующее поле сам если там осталось что-нибудь после пробела. Нельзя использовать имя или адрес в которых есть пробелы.
Кстати, сортировка тоже неправильная
Код:
if(ob[i]->weight>ob[i]->weight)
тут видимо j надо в одном из мест
Изображения
Тип файла: jpg 0.JPG (25.4 Кб, 57 просмотров)
eoln вне форума Ответить с цитированием
Старый 05.05.2010, 21:26   #5
silence_master
 
Регистрация: 14.12.2009
Сообщений: 5
По умолчанию

Спасибо! все понял. спасибо за подробный коммент и скрин.
Мне совсем не нужно вставать на цыпочки, чтобы поцеловать небо...
silence_master вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка массива структур 3OH! Помощь студентам 4 02.05.2010 21:32
Массив структур - сортировка на C#(мини бд) littlecoder Помощь студентам 3 02.03.2010 11:22
Си : сортировка массива структур Чубрик Общие вопросы C/C++ 5 23.01.2010 22:02
Сортировка массива структур. nec117 Общие вопросы C/C++ 5 22.02.2009 18:01
Сортировка массива структур arturka Помощь студентам 1 21.06.2008 14:15