Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 12.03.2023
Сообщений: 10

Структуры "Животное", вывести список животных с заданным именем

14.04.2023, 16:17. Показов 805. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Мне нужно было написать программу со структурами, где я должна была ввести данные о животных и потом вывести информацию об одном из животных. Я могу ввести данные о животных, но при вызове функции, где мне нужно, чтобы программа вывела данные, выбранного мной животного, она не работает. И выходит ошибка "Вызвано исключение: нарушение доступа для записи." также появляется точка остановки.
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
#include <conio.h>
#include <iomanip>
#include <iostream>
#include <string>
 
using namespace std;
struct name
{
    string animal;
    string food;
    float rost, ves, period;
} mas[100];
 
void ZaprosAnimal(char* f, int j);
int main()
{
    setlocale(LC_ALL, "rus");
    char* name = 0;
    for (int i = 0; i < 10; i++)
    {
        cout << "\n Введите имя животного : ";
        cin >> mas[i].animal;
        cout << "\nВведите средний рост : ";
        cin >> mas[i].rost;
        cout << "\nВведите средний вес : ";
        cin >> mas[i].ves;
        cout << "\nВведите средний срок жизни : ";
        cin >> mas[i].period;
        cout << "\nВведите предпочтения в еде : ";
        cin >> mas[i].food;
 
    }
 
    char* m = 0;
    cout << "\nВведите имя животного для поиска : ";
    cin >> m;
    int i = 0;
    cout<<"\n ZaprosAnimal(m, i)";
    return 0;
}
 
void ZaprosAnimal(char* f, int j)
{
    name* k = 0;
    for (int j = 0; j < 10; j++)
    {
        if (k[j].animal == f)
        {
            cout << "\n Рост: " << k[j].rost;
            cout << "\t Вес: " << k[j].ves;
            cout << "\t Срок жизни: " << k[j].period;
            cout << "\t Предпочтения в еде: " << k[j].food;
            k++;
        }
    }
 
    if (k == 0) cout << "\n Таких животных нет!";
    return;
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.04.2023, 16:17
Ответы с готовыми решениями:

Описать структуру с именем STUDENT, вывести список студентов удовлетворяющих заданным условиям
Описать структуру с именем STUDENT, содержащую следующие поля:  фамилия и инициалы;  номер группы;  успеваемость (массив из пяти...

Написать код с вложенностью структур: планета, континент, животное, группа животных
Есть структура, которая описывает- животное(вес, рост, цвет), эта структура вложена динамическим массивом в структуру- группа животных,...

Считать данные из файла и вывести на экран список животных, указанной породы и возраста
Вот мое задание на лабораторную работу: Написать программу для обработки информации о животных, представленных на выставку кошек....

6
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
14.04.2023, 16:43
Цитата Сообщение от Ума 15 Посмотреть сообщение
char* m = 0;
cout << "\nВведите имя животного для поиска : ";
cin >> m;
Это как понимать ?
Создали указатель на char, который никуда не указывает и вводите туда данные ?

Добавлено через 2 минуты
Цитата Сообщение от Ума 15 Посмотреть сообщение
void ZaprosAnimal(char* f, int j)
{
name* k = 0;
for (int j = 0; j < 10; j++)
{
if (k[j].animal == f)
{
Тоже самое.
Не понятно что вы пытаетесь тут сделать с нулевым указателем.
0
0 / 0 / 0
Регистрация: 12.03.2023
Сообщений: 10
14.04.2023, 17:10  [ТС]
У меня была методичка я эту часть взяла оттуда

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
void ZaprosFamily(student  *k, char  *f);
int main()
{ . . .
char *family;
. . .
cout<<”\nВведите фамилию для поиска:; 
cin  >>family;
ZaprosFamily(kurs, family);
. . .
return 0;
} 
void ZaprosFamily(student  *k, char  *f)
{ 
k=0;
for (j=0; j<N; j++)
        if ( strcmp(k[j].fam, f)==0 )
            {
                cout<<”\nФамилия:<<k[j].fam;
                cout<<”\tИмя:<<k[j].name;
                cout<<”\tВозраст:<<k[j].age;  
                k++;
            }
if (k==0) cout<<”\nТаких студентов нет!;
return;
}
Добавлено через 1 минуту
Я сделала её под себя, просто ввела другие данные
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
14.04.2023, 17:19
Где учат так делать char* m = 0;?
string используй.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
14.04.2023, 17:29
Лучший ответ Сообщение было отмечено Ума 15 как решение

Решение

Цитата Сообщение от Ума 15 Посмотреть сообщение
У меня была методичка
Цитата Сообщение от Ума 15 Посмотреть сообщение
Я сделала её под себя, просто ввела другие данные
Значит плохо "сделали под себя".

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
#include <iomanip>
#include <iostream>
#include <string>
 
using namespace std;
struct Animal {
    string name;
    string food;
    float rost, ves, period;
} mas[100];
 
void ZaprosAnimal(Animal* animals, int n, string name);
int main()
{
    setlocale(LC_ALL, "rus");
    int n = 3;
    for (int i = 0; i < n; i++) {
        cout << "\n Введите имя животного : ";
        cin >> mas[i].name;
        cout << "\nВведите средний рост : ";
        cin >> mas[i].rost;
        cout << "\nВведите средний вес : ";
        cin >> mas[i].ves;
        cout << "\nВведите средний срок жизни : ";
        cin >> mas[i].period;
        cout << "\nВведите предпочтения в еде : ";
        cin >> mas[i].food;
    }
 
    string animal_name;
    cout << "\nВведите имя животного для поиска : ";
    cin >> animal_name;
    cout << endl;
    ZaprosAnimal(mas, n, animal_name);
}
 
void ZaprosAnimal(Animal* animals, int n, string name)
{
    int k = 0;
    for (int j = 0; j < n; j++) {
        if (animals[j].name == name) {
            ++k;
            cout << "\n Рост: " << animals[j].rost;
            cout << "\t Вес: " << animals[j].ves;
            cout << "\t Срок жизни: " << animals[j].period;
            cout << "\t Предпочтения в еде: " << animals[j].food;
        }
    }
 
    if (k == 0)
        cout << "\n Таких животных нет!";
}
0
0 / 0 / 0
Регистрация: 12.03.2023
Сообщений: 10
14.04.2023, 17:33  [ТС]
Спасибо большое программа работает
0
Модератор
Эксперт С++
 Аватар для zss
13778 / 10971 / 6491
Регистрация: 18.12.2011
Сообщений: 29,257
14.04.2023, 18:13
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
#include <conio.h>
#include <iomanip>
#include <iostream>
#include <string>
 
using namespace std;
struct name
{
    string animal;
    string food;
    double rost, ves, period;
};
 
void ZaprosAnimal(name* k, int n,string f);
int main()
{
    setlocale(LC_ALL, "rus");
    cout<<"Введите к-во животных: ";
    int n;cin>>n;
    name* mas=new name[n];
    for (int i = 0; i <n; i++)
    {
        cout << "\n Введите имя животного : ";
        cin >> mas[i].animal;
        cout << "\nВведите средний рост : ";
        cin >> mas[i].rost;
        cout << "\nВведите средний вес : ";
        cin >> mas[i].ves;
        cout << "\nВведите средний срок жизни : ";
        cin >> mas[i].period;
        cout << "\nВведите предпочтения в еде : ";
        cin >> mas[i].food;
 
    }
 
    string m;
    cout << "\nВведите имя животного для поиска : ";
    cin >> m;
    cin.get();
    cout<<"\n ZaprosAnimal(m, i)";
    ZaprosAnimal(mas,n,m);
    delete[] mas;
    cin.get();
    return 0;
}
 
void ZaprosAnimal(name* nm, int n,string f)
{
    int k=0;
    for (int j = 0; j < n; j++)
    {
        if (nm[j].animal == f)
        {
            cout << "\n Рост: " << nm[j].rost;
            cout << "\t Вес: " << nm[j].ves;
            cout << "\t Срок жизни: " << nm[j].period;
            cout << "\t Предпочтения в еде: " << nm[j].food;
            k++;
        }
    }
    if (k == 0) cout << "\n Таких животных нет!";
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.04.2023, 18:13
Помогаю со студенческими работами здесь

Вывести имена всех файлов и подкаталогов в заданном каталоге, принадлежащих пользователю с заданным именем
Которая выводит имена всех файлов и подкаталогов в заданном каталоге, принадлежащих пользователю с заданным именем и общее число всех...

Найти на жестком диске компьютера все файлы с заданным именем, поочередно вывести на экран их содержимое
Привет. Подсобите пожалуйста в решении задачки. Всё уже запускается, ищется, но, даже при нахождении соответствующего файла(ов) и наличии в...

Удалить процессы с заданным именем и с заданным аргументом
Задачка: Запрограммируйте скрипт, удаляющий все процессы с заданным именем и с заданным аргументом, запущенные определенным...

Разработать структуры Зоопарк (Zoo), Вальер (Cage), Животное (Animal)
От парка флоры и фауны «Роев ручей» в преддверии зимы поступил срочный заказ на разработку информационной системы, которая поможет рабочим...

Класс Student, вывести список студентов по заданным признакам
Разработать классы для описанных ниже объектов. Включить в класс методы set (…), get (…), show (…). Определить другие методы. 1....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru