Форум программистов, компьютерный форум CyberForum.ru

В чем заблуждение? (структуры) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести дату, следующую за указанной http://www.cyberforum.ru/cpp-beginners/thread303294.html
Даны два целых числа: D(день) и M(месяц), определяющие правильную дату невысокосного года. Вывести значения D и M для даты, следующей за указанной.
C++ Получить все такие натуральные q, что n делится на qв квадрате и не делится на q в кубе Дано натуральное число n. Получить все такие натуральные q, что n делится на qв квадрате и не делится на q в кубе. В С++, желательно с комментариями, на сколько возможно, конечно=))спасибо! http://www.cyberforum.ru/cpp-beginners/thread303289.html
Сложение пар чисел в одномерном массиве C++
Здравствуйте. Подскажите пожалуйста как можно реализовать такого вида код: дан массив из 4 чисел, найти все возможные суммы чисел. Например числа:1, 2 ,3, 4. Результат: 1+2 1+3 1+4 2+3 2+4 3+4
Деревья(нерекурсивно) C++
Проверить, что в заданном дереве для каждой вершины длина левой ветви равна длине правой ветви.
C++ STL__Графы http://www.cyberforum.ru/cpp-beginners/thread303262.html
Граф задан набором дуг (неориентированных) и набором вершин. Найти все изолированные вершины, т.е. вершины, из которых не исходит ни одной дуги.
C++ Получить квадратную матрицу порядка n Получить квадратную матрицу порядка n: подробнее

Показать сообщение отдельно
enotik
1 / 1 / 0
Регистрация: 20.10.2010
Сообщений: 147

В чем заблуждение? (структуры) - C++

23.05.2011, 23:46. Просмотров 352. Ответов 5
Метки (Все метки)

вообщем, программа, структура, сожержащая в себе информацию об авторах книг, их названии и тираже.
нужно вывести самого популярного автора.
выводит. Но если их несколько например Пушкин 20 книг и Лермонтов 20 книг, нужно написать, что самого популярного автора нет.

привожу текст программы, ниже вопрос.
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include<stdio.h>
#include<string.h>
 
typedef struct {char avtor[15];
                      char naz[20];
                      int tiraj;}book;
 
 
void search(book [],int);
void search(book [], int ,char []);
int create(book [],char []);
void print(book [], int );
 
 
void main()
{book a[10];
int k;
char c[15];
k=create(a,c);
 
search(a, k, c);
print(a, k);
search(a, k);
 
}
 
void search(book a[], int k)
{int i,j,imax=0,p=0;
 
 for(i=0;i<k;i++)
     if(a[i].tiraj)
     for(j=1;j<k;j++)
     if((i!=j)&&!strcmp(a[i].avtor,a[j].avtor))
     {a[i].tiraj+=a[j].tiraj;printf("\ntir=%4d  i=%2d j=%2d",a[i].tiraj,i,j);
 
 
 
 
      a[j].tiraj=0;
       
    [B] }
     for(i=1;i<k;i++)
     if(a[imax].tiraj<a[i].tiraj)
     imax=i;
     for(i=1;i<k;i++)
     if (a[i].tiraj==a[imax].tiraj)p++;
     printf("\ncamyi popylyarnyi:\n%15s%10d",a[imax].avtor, a[imax].tiraj);
      if (p++)   printf ("\n Absolutnogo lidera vuiavit` nevozmojno\n");[/SIZE][/B]
     
             
    
}
 
void search(book a[],int k,char c[])
{int fl=0;
    for(int i=0;i<k;i++)
if(!strcmp(c,a[i].avtor))
{if(!fl)printf("\nvse knigi iskomogo avtora:");
    printf(" \n%10s%10s%6d",a[i].avtor,a[i].naz,a[i].tiraj);
fl=1;   }if(!fl)printf("\Avtor don`t exsist");
}
 
int create(book a[], char c[])
{int k;
printf("\n Enter kol-vo avtorov: ");
scanf("%d", &k);
    for(int i=0;i<k;i++)
    {flushall();
        printf("\nvvedite familiu avtora: ");
    gets(a[i].avtor);
    printf("\nvvedite nazvanie knigi: ");
    gets(a[i].naz);
    printf("\nvvedite tiraj: ");
    scanf("%d", &a[i].tiraj);
    }flushall();
printf("\nvvedite familiu iskomogo avtora: ");
gets(c);
    return k;
}
 
void print(book a[],int k)
{printf("\n\n VSE KNIGI: ");
    for(int i=0;i<k;i++)
printf("\n%15s%15s%10d",a[i].avtor,a[i].naz,a[i].tiraj);
}
некорректность - строки 41-49
т е ищу максимальный элемент тиража, и печатаю имя соответствующее этому тиражу.
далее сравниваю в цикле, если существует чей-то тираж равный максимальному - вывожу "Абсолютного автора нет"
Но выводится и самый популярный автор и слова что такого нет во всех случаях сразу. Даже когда есть популярный, или несколько популярных - выводится первый, как будто он один. Что делать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru