Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C (СИ) Не отображается меню, а сразу включается подпрограмма http://www.cyberforum.ru/c-beginners/thread898924.html
не отображает меню, а сразу включается подпрограмма. что не так? void main() { clrscr(); printf("\t\tDlya prodolzeniay naxmite Enter, dla vixoda Esc\n"); while(!exit) { ...
C (СИ) На экран выводится "мусор"
Вместо создаваемого массива выводит на экран "мусор" какой-то. Не пойму, что не так... #include<stdio.h> #include<conio.h> #include<iostream> int main(void) { int n, m, i, j; ...
C (СИ) Не понятна данная строка int k = (i > j) ? 10 : 50;
Доброго дня, уважаемые форумчане. Сейчас изучаю книгу Аарона Хиллегасса по C и Objective-C. Запутался на упражнении с тернарным оператором... Вот само упражнение: Имеется следующий фрагмент...
C (СИ) Вывести на печать значения четвертого и шестнадцатого отрицательного элемента массива для заданого масиву В(21) вивести на друк значення четвертого і шостого від'ємного елементу цього масиву і іх порядковий номер в масиві http://www.cyberforum.ru/c-beginners/thread898679.html
C (СИ) Определить имеются ли одинаковые цифры в двух числах http://www.cyberforum.ru/c-beginners/thread898560.html
Ввести два числа N<65000. Определить имеются ли в них одинаковые цифры и сколько. Предусмотреть повторение выполнения программы. В общем я немного написал, что думал, но не могу понять что не так....
C (СИ) Сформировать вектор по правилу
Дано одновимірний масив В, який складається з 15 елементів. Сформувати вектор А, першим елементом якого є найменше число, а насупні елементи вектора А - числа, які знаходяться за найменшим елементом...
C (СИ) Создать программу для проверки вхождения одной строки в большую
Создать программу для проверки вхождения одной строки в большую
C (СИ) Создать программу для создания и вывода на экран типизированного файла Создать программу для создания и вывода на экран типизированного файла http://www.cyberforum.ru/c-beginners/thread898418.html
C (СИ) Создать программу для работы с прямоугольниками http://www.cyberforum.ru/c-beginners/thread898417.html
Создать программу для работы с прямоугольниками
C (СИ) Создать программу для работы с массивами структур - создание и вывод на экран Создать программу для работы с массивами структур - создание и вывод на экран http://www.cyberforum.ru/c-beginners/thread898416.html
Azay
0 / 0 / 1
Регистрация: 06.04.2013
Сообщений: 48
0

Сортировка данных в структуре

11.06.2013, 22:19. Просмотров 475. Ответов 4
Метки (Все метки)

Помогите пожалуйста тут ошибка в самой последней строчке программы.
Преподаватель сказал, что мне следует там использовать If и else, но я не знаю каким образом, т.к. с функцией compare я не был знаком ранее...
вот само условие:
Дана структрура с названием NOTE. Задание:
- ввод с клавиатуры данных в массив, состоящий из восьми элементов типа NOTE; записи должны быть упорядочены по трем первым цифрам номера телефона;
- вывод на экран информации о человеке, чья фамилия введена с клавиатуры; если такого нет, выдать на дисплей соответствующее сообщение.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <locale.h>
const int l_name=30;
struct NOTE {
    char Surname[20];
    char Name[20];
    int Nomer;
    int Birth[50];
};
int compare (const void *stud1, const void *stud2); 
int main(){
    setlocale(LC_ALL, "Russian_Russia.1251");
    int n,i,k;
    char g[20];
    printf("Введите количество студентов n = ");
    scanf_s("%d",&n);
    NOTE *tr=new NOTE[n];  
    for (i=0; i<n; i++)
    {printf("%d-й студент: ",i+1);
    scanf_s("%s ", &tr[i].Surname);
    scanf_s("%s", &tr[i].Name);
    printf("\nВведите номер телефона: (098)");
    scanf_s("%s",&tr[i].Nomer);
    printf("\nВведите дату рождения");
    k=i+3*i;
    for(int j=k;j<k+3;j++)
        scanf_s("%s ",&tr[j].Birth);}
    qsort(tr,n,sizeof(NOTE),compare);   
    printf("\nСтуденты отсортированы по номерам телефонов\n");
    for(i=0; i<n; i++){
        printf("%10s %10s %3d %d.%d.%d\n",tr[i].Surname,tr[i].Name, tr[i].Nomer, tr[i+3*i].Birth, tr[i+3*i+1].Birth, tr[i+3*i+2].Birth);
    }
    int count=0;
    scanf_s("%10s", &g);
        {for(int i=0;i<n;i++)
            if(g==tr[i].Surname)
                printf("%10s %10s %3d %d.%d.%d\n",tr[i].Surname,tr[i].Name, tr[i].Nomer, tr[i+3*i].Birth, tr[i+3*i+1].Birth, tr[i+3*i+2].Birth);
                count++;
        
    }
    if (count==0) printf("Нет студентов с данной фамилией"); 
    delete tr;
    _getch();
    return 0;  
}
int compare (const void *stud1, const void *stud2){
return strcmp(((NOTE *)stud1)->Nomer,((NOTE *)stud2)->Nomer);}
Ошибка: error C2664: strcmp: Невозможно преобразовать параметр 1 из “int” в “const char *”

Вернуться к обсуждению:
Сортировка данных в структуре
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2013, 22:19
Готовые ответы и решения:

Сортировка данных в структуре.
Здравствуйте. Необходимо отсортировать числовые данные в структуре. Интересует qsort. Искал на...

Сортировка в структуре
Здравствуйте, есть такая задача: Из файла (test.txt) нужно считать данные в структуру и...

Сортировка в структуре
Ребят помогите пожалуйста реализовать в данной структуре сортировку по номеру группы по...

Сортировка в структуре
Здравствуйте, каким образом можно отсортировать структуру чтобы не терялись остальные поля мне надо...

Сортировка по одному из полей в структуре
Задана структуру с именем info, содержащую номер, имя и фамилию, а также дату рождения человека....

4
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru