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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2014, 19:21   #1
Zaraaa
Пользователь
 
Регистрация: 19.04.2013
Сообщений: 83
По умолчанию массивы структур

Здравствуйте форумчане. Помогите почему не работает.
Код:
#include <stdio.h>
#include <string.h>
#include <conio.h>

using namespace std;
struct BB
{
char avtor[15];
char nazvanie;
unsigned int gv;
char gr;
} A[15];

int main()
{
struct BB x;
int n,i,j;

//clrscr();
for(n=0;n<10;n++)
{
 printf("%d.Vvedite avtora knigi, nazvanie, god vipuska, gryppy  ",n+1);
 scanf("%s", A[n].avtor);
 if (!strcmp(A[n].avtor,"exit")) break;   //сравнивает 2 строки
 scanf("%s %u %c",&A[n].nazvanie, &A[n].gv, &A[n].gr);
}

printf("-------------------------------------------------------------------------------\n");
printf("|                  Katalog Biblioteki                                         |\n");
printf("|------------------------------------------------------------------------------|\n");
printf("|  avtor knigi  |   nazvanie  |  god vipuska  |  gruppa   |\n");
printf("|------------------|----|-----------------------------|-------------------------|\n");

for (i=0;i<n;i++)
  printf("|%-15s||%-13s|%-15u|%-11c|\n",A[i].avtor,A[i].nazvanie,A[i].gv,A[i].gr);
printf("|------------------------------------------------------------------------------|\n");

for (i=0;i<n-1;i++)
{
  for (j=i+1;j<n;j++)
  {
    if((strcmp(A[i].avtor,A[j].avtor))>0)   //сравнивает 2 строки
     {
       strcpy(x.avtor,A[i].avtor);   //копирует одну строку в другую
       strcpy(A[i].avtor,A[j].avtor);
       strcpy(A[j].avtor,x.avtor);

       x.nazvanie=A[i].nazvanie;
       A[i].nazvanie=A[j].nazvanie;
       A[j].nazvanie=x.nazvanie;

       x.gv=A[i].gv;
       A[i].gv=A[j].gv;
       A[j].gv=x.gv;

       x.gr=A[i].gr;
       A[i].gr=A[j].gr;
       A[j].gr=x.gr;

     }
  }
}
printf("-------------------------------------------------------------------------------\n");
printf("|                  Katalog Biblioteki                                         |\n");
printf("|------------------------------------------------------------------------------|\n");
printf("|  avtor knigi  |   nazvanie  |  god vipuska  |  gruppa   |\n");
printf("|------------------|----|-----------------------------|-------------------------|\n");

for (i=0;i<n;i++)

  printf("|%-15s||%-13s|%-15u|%-11c|\n",A[i].avtor,A[i].nazvanie,A[i].gv,A[i].gr);
printf("|-----------------------------------------------------------------------------|\n");

getch();
return 0;
}
Zaraaa вне форума Ответить с цитированием
Старый 23.10.2014, 21:38   #2
abit
Пользователь
 
Регистрация: 21.10.2014
Сообщений: 43
По умолчанию

Zaraaa
А зачем тут
Код:
scanf("%s %u %c",&A[n].nazvanie, &A[n].gv, &A[n].gr);
нужна операция &, если [] сама по себе работает адресной арифметикой?
abit вне форума Ответить с цитированием
Старый 24.10.2014, 10:54   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
нужна операция &, если [] сама по себе работает адресной арифметикой?
Потому что тут переменные A[n].nazvanie, A[n].gv, ... а & (операция взятия адреса) "возвращает указатель", который так нужен сканфу.

ТС, в чем заключается нерабочесть? Как звучит задание? Почему, если название у вас символ, для сканфа вы указывает модификатор строка, а не символ?

Последний раз редактировалось p51x; 24.10.2014 в 10:56.
p51x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массивы структур L6go1as Общие вопросы C/C++ 4 24.10.2011 16:28
c++ массивы структур atemiks Помощь студентам 6 15.08.2011 15:02
Массивы структур :( ( Proghelper Помощь студентам 3 12.12.2010 18:17
Массивы структур. Fiber Общие вопросы C/C++ 4 29.11.2010 21:16
массивы структур vasek123 Общие вопросы C/C++ 25 07.03.2009 20:13