Структуры и масивы

Тема в разделе "C/C++/C#", создана пользователем dimon131, 20 дек 2010.

  1. dimon131

    dimon131 Member

    Регистрация:
    8 дек 2010
    Сообщения:
    13
    Симпатии:
    0
    Дан масив который содержит данные про книги: фамилия автора, год издания, название книги.
    Вывести на экран в порядке возрастания года информацию про книги которые начинаются с "Inf". Если таких книг нет - сообщить об этом


    Алгоритм:
    Код (C++):
    #include<stdio.h>
    #include<conio.h>
    #include<string.h>
    #define N 5
    int main()
    {
    int i;
    char A[N];
    char *P;
    typedef struct danni            //Обьявление структуры
    {
    char fam[20];   //фамилия автора
    int god;         //год издания
    char kniga[120]; //название книги
    }
    vedomost;
    for(i=0; i<N; i++)               //заполнение масива
    {
    gets(vidomist.fam);
    scanf("%d",&vedomost.rik);
    gets(vedomost.kniga);
    }
    P=strstr("Inf",vedomost.kniga);     //поиск строки "Inf" в строке "книги"

    if(P!=NULL)          //если такая строка существует, то мы переходим в конец строки "Inf" и продолжаем искать дальше
    {
    P+=3;
    P=strstr("Inf",vedomost.kniga)
    }
    else
    printf("Таких книг нет"):

    getch();
    return 0;
    }
     
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    А что такое vedomost.rik и зачем нужен цикл?
     
  3. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    ну, не успел чел перевести на русский язык, волна русификации у нас только начинается :bequiet:
     
  4. ierofant

    ierofant Гость

    Если бы только это... У vedomost вообще нет никакого rik, по-крайней мере в данном коде.
     
  5. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
  6. ierofant

    ierofant Гость

    OKEN,
    Да, в украинском я не силён, но я бы вообще посоветовал имя year, для этой переменной, раз уж зашёл разговор.
     
  7. ierofant

    ierofant Гость

    Код (C++):
    #include <stdio.h>
    #include <string.h>
    #define N 5

    typedef struct
    {
    char autor [20];
    int year;
    char book_name [120];
    } BookInfo;

    int main ()
    {
    BookInfo list [N];
    for (int i = 0; i < N; i++)
    {
    printf ("Автор: ");
    scanf ("%s", list [i].autor);

    printf ("Год издания: ");
    scanf ("%d", &list [i].year);

    printf ("Название: ");
    scanf ("%s", list [i].book_name);

    printf ("\n");
    }

    BookInfo* plist [N];
    int n = 0;
    for (int i = 0; i < N; i++)
    {
    char *p = strstr (list [i].book_name, "Inf");
    if (p != NULL && (p == list [i].book_name))
    {
    plist [i] = &(list [i]);
    n++;
    }
    }

    if (n == 0) printf ("Таких книг нет\n");
    else
    {
    for (int i = 0; i < n - 1; i++)
    {
    int ind = i;
    for (int ii = ind + 1; ii < n; ii++)
    if (plist [ii]->year < plist [ind]->year) ind = ii;

    BookInfo *temp = plist [i];
    plist [i] = plist [ind];
    plist [ind] = temp;
    }
    for (int i = 0; i < n; i++) printf ("%s\t%d\t%s\n", plist [i]->autor, plist [i]->year, plist [i]->book_name);
    }
    return 0;
    }
     
Загрузка...
Похожие Темы - Структуры масивы
  1. TSoprano
    Ответов:
    1
    Просмотров:
    1.012
  2. vlada
    Ответов:
    6
    Просмотров:
    1.458
  3. Anastasia18
    Ответов:
    1
    Просмотров:
    1.206
  4. b0006
    Ответов:
    0
    Просмотров:
    1.177
  5. dimat
    Ответов:
    0
    Просмотров:
    2.294

Поделиться этой страницей