Добро пожаловать в переполнение стека.
Я думаю, что могу различить ваше намерение по комментариям к вопросу и другому ответу, и я считаю, что то, что вы хотите для своего основного цикла, выглядит примерно так:
kitap_ozellikleri gecici1;
kitap_ozellikleri liste[6] = {a, c, y, e, t, k}; // no 'quotes'
char yazar_liste[6] = {'e', 'g', 'k', 'r', 'o', 'o'};
for(n=0; n<6; n++) {
for(z=0; z<6; z++) {
if(yazar_liste[n] == liste[z].yazar){
gecici1.sayfa += liste[z].sayfa;
}
}
}
Вы понимаете, почему я изменил liste
на kitap_ozellikleri[]
и удалил кавычки ''
вокруг членов этого массива?
Компилируется (после добавления служебной информации, такой как int n, z;
), но, как написано, подсчитывает общее количество страниц, написанных всеми авторами, перечисленными в yazar_liste[]
. Но он также дважды учитывает автора "o", потому что этот автор указан дважды в yazar_liste[]
.
Вот полная версия, включающая предложения из различных комментариев, которые распечатывает на каждого автора:
код
#include<stdio.h>
typedef struct{
char isim;
int adet;
int odunc_alinma_sayisi;
int sayfa;
char yazar;
}kitap_ozellikleri;
kitap_ozellikleri a = { 'a', 50, 30, 280, 'e' };
kitap_ozellikleri c = { 'c', 82, 88, 150, 'g' };
kitap_ozellikleri y = { 'y', 99, 123, 119, 'k' };
kitap_ozellikleri e = { 'e', 53, 33, 268, 'r' };
kitap_ozellikleri t = { 't', 24, 42, 159, 'o' };
kitap_ozellikleri k = { 'k', 55, 110, 296, 'o' };
int main(){
int n, z, tot;
kitap_ozellikleri liste[6] = {a, c, y, e, t, k}; // no 'quotes'
char yazar_liste[6] = {'e', 'g', 'k', 'r', 'o'};
for(n=0; n<5; n++) {
tot = 0;
for(z=0; z<6; z++) {
if(yazar_liste[n] == liste[z].yazar){
tot += liste[z].sayfa;
}
}
printf("total pages for sayfa %c is : %d\n", yazar_liste[n], tot);
}
return 0;
}
выход
total pages for sayfa e is : 280
total pages for sayfa g is : 150
total pages for sayfa k is : 119
total pages for sayfa r is : 268
total pages for sayfa o is : 455
Чтобы вместо хранить подсчетов на каждого автора (например, для последующего использования в программе), вам нужно будет ввести способ отслеживания нескольких счетчиков. Я оставлю это как упражнение для вас; но, конечно, если у вас возникли вопросы после того, как вы его попробуете, не стесняйтесь опубликовать еще один отдельный вопрос SO, подробно описав, что вы пробовали, ваши результаты и ожидаемые результаты.