Есть код программы на С++ Программа по введенному запросу должна вывести ответ. В программу вводится: инвентарный номер книги, название, число страниц. Задача программы: найти инвентарный номер книги с введенным названием. У меня она работает на оборот- вводя название выводит инвентарный номер книги. Помогите исправить)
Сам код:
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
int main()
{
struct books
{
char name[20];
int number;
char page[100];
};
const int n=3;
books mas[n];
for (int i=0; i<n;>>mas.number;
cin.get();
cout<< " Input book name: ";
cin.get();
cin.getline(mas.name,20);
cout<< " input count of pages: ";
cin.getline(mas.page,100);
}
cout << "___________________________________________\n" << endl;
cout << "Input book name to find inventory number: " << endl;
int num;
cin >> num;
for (int i=0;i<n;i++)>.number)
cout << mas.name;
printf("\nPress eny key to Exit ...");
getch();
return 0;
}
Другие языки программирования и технологии
Есть проблема с программои на С++ Помогите разобратся
Зачем подключен string, если он не используется?
> найти инвентарный номер книги с введенным названием.
> работает на оборот- вводя название выводит инвентарный номер книги.
И где здесь наоборот? И в том и в другом случае вводится название.
Два варианта поиска, по названию и инвентарному номеру:
#include <string>
#include <cstdio>
#include <iostream>
using namespace std;
int main() {
int n, c;
cout << "Количество книг? ";
cin >> n;
struct book {
string title;
int id;
int pagecnt;
} *books = new book[n];
for (c = 0; c < n; ++c) {
fflush(stdin);
cout << "Книга #" << c + 1 << endl;
cout << " Название? ";
getline(cin, books[c].title);
cout << " Инвентарный номер? ";
cin >> books[c].id;
cout << " Кол-во страниц? ";
cin >> books[c].pagecnt;
}
int nid;
cout << "\nПоиск\nИнвентарный номер? ";
cin >> nid;
for (c = 0; c < n && books[c].id != nid; ++c) ;
if (c != n) {
cout << "Найдена книга: " << "\n Название: " << books[c].title
<< "\n Кол-во страниц: " << books[c].pagecnt << endl;
} else {
cout << "Книги с данным инвентарным номером нет\n";
}
fflush(stdin);
string ntitle;
cout << "\nВведите название? ";
getline(cin, ntitle);
for (c = 0; c < n && books[c].title != ntitle; ++c) ;
if (c != n) {
cout << "Найдена книга: " << "\n Инвентарный номер: " << books[c].id
<< "\n Кол-во страниц: " << books[c].pagecnt << endl;
} else {
cout << "Книги с данным названием нет\n";
}
delete[] books;
cout << "\nНажмите Enter для выхода";
cin.get();
}
Программа без проверки корректности входных данных!
> найти инвентарный номер книги с введенным названием.
> работает на оборот- вводя название выводит инвентарный номер книги.
И где здесь наоборот? И в том и в другом случае вводится название.
Два варианта поиска, по названию и инвентарному номеру:
#include <string>
#include <cstdio>
#include <iostream>
using namespace std;
int main() {
int n, c;
cout << "Количество книг? ";
cin >> n;
struct book {
string title;
int id;
int pagecnt;
} *books = new book[n];
for (c = 0; c < n; ++c) {
fflush(stdin);
cout << "Книга #" << c + 1 << endl;
cout << " Название? ";
getline(cin, books[c].title);
cout << " Инвентарный номер? ";
cin >> books[c].id;
cout << " Кол-во страниц? ";
cin >> books[c].pagecnt;
}
int nid;
cout << "\nПоиск\nИнвентарный номер? ";
cin >> nid;
for (c = 0; c < n && books[c].id != nid; ++c) ;
if (c != n) {
cout << "Найдена книга: " << "\n Название: " << books[c].title
<< "\n Кол-во страниц: " << books[c].pagecnt << endl;
} else {
cout << "Книги с данным инвентарным номером нет\n";
}
fflush(stdin);
string ntitle;
cout << "\nВведите название? ";
getline(cin, ntitle);
for (c = 0; c < n && books[c].title != ntitle; ++c) ;
if (c != n) {
cout << "Найдена книга: " << "\n Инвентарный номер: " << books[c].id
<< "\n Кол-во страниц: " << books[c].pagecnt << endl;
} else {
cout << "Книги с данным названием нет\n";
}
delete[] books;
cout << "\nНажмите Enter для выхода";
cin.get();
}
Программа без проверки корректности входных данных!
Максим Ремель
Спасибо!
чтобы код сюда нормально пролез отделяй "< " и "[ " пробелами иначе майл считает их началом тегов форматирования текста.
в том, что пролезло из кода, взывает некоторое недоумение почему использовано
char page[100];
а не
int page;
с целыми же проще работать, чем с массивами символов
в том, что пролезло из кода, взывает некоторое недоумение почему использовано
char page[100];
а не
int page;
с целыми же проще работать, чем с массивами символов
Максим Ремель
Спасибо за совет. Вот от туда и проблема- когда меняю на int он отказивается работать
Похожие вопросы
- Учю с++ помогите разобратся с некоторыми вопросами.
- ребят... помогите разобратся в биосе, чтоб переустановить винду..
- проблема с windows. Кто вкурсе помогите
- Проблема в программе Access, хочу сделать подарок папе, помогите, пожалуйста
- проблема с антивирусом! помогите...
- Помогите пожалуйста решить проблему при рендере в Sony Vegas Pro 10!!!
- Как выучить Языки програмирования ,Тоесть Более понятно Разобратся В них ???
- Проблема с компьтером... Точнее с работой папок... Помогите!
- Проблемы по WORDу... помогите пож...
- Помогите с проблемой,Есть ли или существует метод-способ востоновить данные,файлы с карты памяти телефона.