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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2008, 22:40   #1
Centyrion
 
Регистрация: 02.05.2008
Сообщений: 3
По умолчанию Структуры

Доброй ночи, программисты этого форума!
Возник вопрос по лабе структуры. Написал саму лабу, компилятор показывает 0 ошибок и 0 warning'ов, но прога не хочет работать так, как надо. Вот собственно никак немогу понять в чем дело
Текст задания:
Сформировать массив, содержащий сведения о личной коллекции книголюба. Структурный тип содержит поля: шифр книги, автор, название, год издания, местоположение (номер стеллажа).
Написать программу, выдающую следующую информацию:
-местоположение книги, автора Х названия Y;
-список книг автора Z, находящихся в коллекции;
-число книг издания ХХ года, имеющихся в библиотеке;
Сама прога, которая у мну получилась:

Цитата:
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <conio.h>
using namespace std;
void main()
{
struct kollekcia
{
char wufr[50];
char avtor[50];
char naz[50];
int god;
(unsigned) int nomer_stellaga;
};
kollekcia mass[5]={{1,"ECeHuH","6eJIa9 6ePe3a",1880,10},
{2,"PywKuH","CMePTb noeTa",1870,11},
{3,"ToJIKueH","BJIaCTeJIuH KoJIec",1923,12},
{4,"roPbKuu'","3uMa",1900,13},
{5,"KyneP","CJIegonbIT",1823,14}};
cout<<"Vvedite um9 aBTopa"<<endl;
char aBTop[20];
cin>>aBTop;
cout<<"Vvedite Ha3BaHue KHuru"<<endl;
char Ha3BaHue[20];
cin>>Ha3BaHue;
for(int i=0;i<4;i++)
if ((strcmp(mass[i].avtor,aBTop)==0)&&(mass[i].naz,Ha3BaHue)==0)
cout<<mass[i].avtor<<mass[i].naz<<mass[i].nomer_stellaga<<endl;
_getch();
cout<<"Vvedite um9 aBTopa ewe pa3 "<<endl;
char aBTop2[20];
cin.get(aBTop2,20);
for(int i=0;i<4;i++)
if (strcmp(mass[i].avtor,aBTop2)==0)
cout<<mass[i].naz<<endl;
_getch();
cout<<"Vvedite god izdaniya knigi"<<endl;
char god[20];
cin.get(god,20);
for(int i=0;i<4;i++)
if(strcmp(mass[i].wufr,god)==0)
cout<<mass[i].wufr<<endl;
_getch();
}
Centyrion вне форума Ответить с цитированием
Старый 06.05.2008, 17:56   #2
Centyrion
 
Регистрация: 02.05.2008
Сообщений: 3
По умолчанию

ап!
актуально до завтрашнего утра...
помогите плз..
Centyrion вне форума Ответить с цитированием
Старый 06.05.2008, 19:19   #3
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

я не знаю, чем ты компилил, и как у тя не было ни одного еррора и варнинга. достаточно посмотреть, что ты в массив чаров пытаешься запихнуть инт. ну не важно. т.к ето лаба у тя, то компиль наверна древний, поэтому я компилил все на bc 3.1, вот код, все по заданию работает.

Код:
#include <iostream.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>

struct kollekcia
{
char wufr[50];
char avtor[50];
char naz[50];
int god;
int n_stel;
};

void main()
{
clrscr();
kollekcia mass[5]={{"1","avtor1","book1",1990,10},
		   {"2","avtor2","book2",1991,11},
		   {"3","avtor3","book3",1992,12},
		   {"4","avtor4","book4",1993,13},
		   {"5","avtor5","book5",1994,14}};
char avtor[50];
char book[50];
int god;
int count = 0;

cout<<"Vvedite um9 aBTopa"<<endl;
cin>>avtor;

cout<<"Vvedite Ha3BaHue KHuru"<<endl;
cin>>book;

for (int i=0; i<5; i++)
{
	if ((strcmp(avtor, mass[i].avtor) == 0) &&
	    (strcmp(book, mass[i].naz) == 0))
	    {
	    printf("%s %d %s", "Mestopoloshenie knigi",mass[i].n_stel,"stellag\n");
	    break;
	    }
	else
		if (i == 4) printf("%s", "Nishego ne naideno\n");
}

strcpy(avtor, "");
cout<<"\nVvedite um9 aBTopa"<<endl;
cin>>avtor;

printf("%s %s %s", "Spisok knig avtora ", avtor, ":\n");
for (i=0; i<5; i++)
{
	if (strcmp(avtor, mass[i].avtor) == 0)
	{
	   printf("%s %s", mass[i].naz, "\n");
	}
}

cout<<"\nVvedite god izdaniya knigi"<<endl;
cin>>god;

for (i=0; i<5; i++)
{
	if(god == mass[i].god)
	{
        printf("%s %s", mass[i].naz, "\n");
    }
}

getch();
}
пс. када пишешь прогу, НЕ НАДО так извращаться с названиями переменных и тем, что в базу пихаешь, достаточно завести тривиальные имена (см код).

ппс. плюсек надеюсь не забудешь поставить
vvviperrr вне форума Ответить с цитированием
Старый 06.05.2008, 19:44   #4
Centyrion
 
Регистрация: 02.05.2008
Сообщений: 3
По умолчанию

vvviperrr спасибо, теперь все работает. Я писал на Visual C++ 2005 Express Edition. Про переменные и имена - хорошо, в след. раз учту, пока только учусь всему
пс: плюс поставил, но рейтинг твой не повысился. втф?
Centyrion вне форума Ответить с цитированием
Старый 06.05.2008, 20:33   #5
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

не знаю) наверна потому что ты тож новичек) да не важно)
vvviperrr вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ shvarz Общие вопросы C/C++ 1 10.05.2008 19:48
Структуры в С++ bloo[d] Помощь студентам 1 30.01.2008 22:27
[С++]Структуры...HELP!!! Настенька Помощь студентам 6 25.12.2007 21:11