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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2012, 13:49   #1
Sorento2
Пользователь
 
Регистрация: 13.11.2012
Сообщений: 41
Восклицание Сортировка в структуре.

Код:
#include <stdio.h>
#include <conio.h>

    

int main(){
     struct noteb
    {
        char name[20];
        float hard;
        int price; 
    } noteb[5];
    int i;
    for(i=0; i<5; i++){
    printf("name of notebook:", i);
    if (scanf("%s", &noteb[i].name)==EOF) break;
    printf("hard: ", i);
    if (scanf("%f", &noteb[i].hard)==EOF) break;
    printf("price: ", i);
    if (scanf("%i", &noteb[i].price)==EOF) break;}    

for(i=0; i<5; i++){
printf("names\n: %s", noteb[i].name);
printf("names: %f", noteb[i].hard);
printf("names: %i", noteb[i].price);
} getch();  
 return 0; 
 
}

Не пойму как сортировку делать... Что использовать вообще? Кому не трудно объясните пожалуйста, что использовать и как...
Изображения
Тип файла: jpg IMG_20121203_142858.jpg (94.8 Кб, 155 просмотров)
Тип файла: jpg IMG_20121203_142905.jpg (78.8 Кб, 162 просмотров)
Sorento2 вне форума Ответить с цитированием
Старый 14.12.2012, 13:59   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

1) Не очень понятно, при чём тут EOF. Вы нигде не считаете, сколько же структур реально ввели (а их может быть меньше максимального количества).
2) Строка "12345678901234567890" в char[20] не влезет.

3) Пусть у Вас есть массив целых чисел int *arr и его длина size_t length. Как Вы его отсортируете? Напишите функцию.
Abstraction вне форума Ответить с цитированием
Старый 14.12.2012, 14:01   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

А проблема в чем с сортировкой?

Код:
      float hard;
        int price;
Это числа. Вы не знаете как сортировать массив чисел?

По строковому полю чуть сложнее, но не более того.
p51x вне форума Ответить с цитированием
Старый 14.12.2012, 17:53   #4
Sorento2
Пользователь
 
Регистрация: 13.11.2012
Сообщений: 41
По умолчанию

1) простите не в ту тему написал.
2) я программирование начал изучать с первого курса института( на котором я сейчас и нахожусь). поэтому практики у меня как таковой нет. сортировку нам не давали. поэтому и написал, если можно чтоб объяснили.

Последний раз редактировалось Sorento2; 14.12.2012 в 17:57.
Sorento2 вне форума Ответить с цитированием
Старый 14.12.2012, 18:04   #5
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Ладно. Хотя в таком случае учебная программа выглядит как обучение плаванию методом забрасывания на середину реки.

Можете ли Вы написать функцию, которая бы принимала два аргумента, arr и length, типов int* и size_t соответственно, и которая бы не возвращала ничего (void), с пустым телом?
Можете ли Вы в теле такой функции написать цикл, в котором локальная переменная i изменяется от 0 до length-1 включительно - с пустым телом цикла?
Abstraction вне форума Ответить с цитированием
Старый 18.12.2012, 20:24   #6
Sorento2
Пользователь
 
Регистрация: 13.11.2012
Сообщений: 41
По умолчанию

Код:
#include <stdio.h>
#include<string.h>

int main(){
struct{
char name[21];
 float hard;
int price;
} noteb[5];
int i,j;

for (i=0;i<5;i++){
start:
printf("name: \n");
if(gets(noteb[i].name)==NULL) break;

for(j=0;j<i;j++){
if(strcmp(noteb[i].name,noteb[J].name)==0)
{
printf("уже существует \n");
goto start;
}
}

printf("hard");
if(scanf("%f", &noteb[i].hard)==EOF) break;
printf("price");
if(scanf("%i", &noteb[i].price)==EOF) break;
fflush(stdin);
}
for(j=0;j<i;j++){
printf("name %s ", noteb[j].name);
printf("hard %f ", noteb[j].hard);
printf("price %i \n", noteb[j].price);
return 0;
}
}
Sorento2 вне форума Ответить с цитированием
Старый 18.12.2012, 20:26   #7
Sorento2
Пользователь
 
Регистрация: 13.11.2012
Сообщений: 41
По умолчанию

Вот накалякал. На счет функции. Я не совсем поняо смысл вашего задания.
Я могу написать функцию сравнивающую 2 числа.
Sorento2 вне форума Ответить с цитированием
Старый 18.12.2012, 21:54   #8
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

Цитата:
Сообщение от Sorento2 Посмотреть сообщение
Вот накалякал. На счет функции. Я не совсем поняо смысл вашего задания.
Я могу написать функцию сравнивающую 2 числа.
уважаемый.... я так устал, что не буду гуглить, но скажу что пузырьковая сортировка, что пропагандируется студентам вам поможет... вам лишь необходимо переделать под себя сравнение.
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Perchik71 вне форума Ответить с цитированием
Старый 19.12.2012, 01:05   #9
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Вот накалякал. На счет функции. Я не совсем поняо смысл вашего задания.
Я могу написать функцию сравнивающую 2 числа.
Цитата:
Можете ли Вы написать функцию, которая бы принимала два аргумента, arr и length, типов int* и size_t соответственно, и которая бы не возвращала ничего (void), с пустым телом?
Напишите пока такую.
Abstraction вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с if в структуре. Prin53 Общие вопросы C/C++ 2 22.05.2012 09:19
сортировка в структуре Oleg34 Общие вопросы C/C++ 1 16.09.2011 21:03
Сортировка фамилий в структуре Красавчег))) Общие вопросы C/C++ 2 04.01.2010 01:07
Сортировка строк по алфавиту в структуре с помощью указателей Anarki Общие вопросы C/C++ 2 23.10.2009 19:36
Паскаль: шейкерная сортировка на динамической структуре. kotzebu Фриланс 1 01.05.2009 12:48