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

Подскажите пожалуйста как исправить ошибки в коде:

21.04.2021, 01:07. Показов 1373. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ошибки которые надо исправить:

Агоритм сортировки неверен.

(сортировка должна быть по названию продуктов)

Для сравнения массивов char вместо просто оператора "==". Нужно было использовать функцию strcmp().



Вот код:

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
#include <iostream>
#include <string.h>
struct PRICE {
char tov[80];
int cost;
char mag[80];
};
int main()
{
setlocale(LC_ALL, "Russian");
int n;
std::cout << "Введите количество структур\n";
std::cin >> n;//Количество структур
PRICE* arr = new PRICE[n];//динамическое выделение памяти под массив структур
std::cin.ignore();//Когда мы смешиваем ввод строковых данных и чисел, то в число
может попадать символ переноса строки.
//Когда мы жмём клавишу Enter, ведь в память попадает символ, вот именно этот
символ мы игнорируем принудительно.
for (int i = 0; i < n; i++)//Ввод данных
{
std::cout << "Enter product name\n";
std::cin.getline(arr[i].tov, 80);
std::cout << "Enter your store name\n";
std::cin.getline(arr[i].mag, 80);
std::cout << "Enter price\n";
std::cin >> arr[i].cost;
std::cin.ignore();
}
char key;
for (key = 'A'; key <= 'Z';key++)//сортировка по алфавиту
{
for (int i = 0; i < n; i++)
{
if (arr[i].tov[0] == key)//вывод данных
{
std::cout <<
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
std::cout << arr[i].tov << std::endl;
std::cout << arr[i].mag << std::endl;
std::cout << arr[i].cost << " Rub in " << std::endl;
}
}
}
int b = 0;
std::string v;
bool g = false;
while (b == 0) {
std::cout << "Enter product name: ";
std::cin >> v;
for (int i = 0; i < n; i++)
{
if (v == arr[i].tov) {
std::cout << arr[i].tov << std::endl;
std::cout << arr[i].mag << std::endl;
std::cout << arr[i].cost << std::endl;
g = true;
}
}
if (g == false) {
std::cout << "There is no such item" << std::endl;
}
std::cout << "Continue work? 0 - Yes 1 - No" << std::endl;
std::cin >> b;
}
return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.04.2021, 01:07
Ответы с готовыми решениями:

подскажите как исправить ошибки в коде C++(oop)
Программа реализует класс &quot;треугольник&quot; и всевозможные методы для него помогите исправить ошибки lb_1_oop_sam.h #ifndef...

Как исправить ошибки. Подскажите пожалуйста!
// пртотипы функций void cr_base(); void pr_base(int n); void cr_child(); void pr_child(); void ov_un(); void main_menu(); ...

Исправить ошибки в коде, пожалуйста!
Ребята, помогите мне с задачей, пожалуйста. Я запуталась, никак решить не могу. Необходимо скомпилировать в Visual Studio. Не получается,...

4
458 / 294 / 191
Регистрация: 23.06.2018
Сообщений: 678
21.04.2021, 09:14
Цитата Сообщение от Wholelotta Посмотреть сообщение
for (key = 'A'; key <= 'Z';key++)//сортировка по алфавиту
{
for (int i = 0; i < n; i++)
{
if (arr[i].tov[0] == key)//вывод данных
{
std::cout <<
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~\n";
std::cout << arr[i].tov << std::endl;
std::cout << arr[i].mag << std::endl;
std::cout << arr[i].cost << " Rub in " << std::endl;
}
}
}
Как-то так это должно быть (не проверял)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
for (int i = 0; i < n-1; i++) //сортировка по алфавиту
{
  int m = i;
  for (int j = i+1; j < n; j++)
    if (strcmp(arr[m].tov, arr[j].tov) > 0)
      m = j;
  PRICE tmp;
  memcpy(&tmp, arr[i], sizeof(PRICE));
  memcpy(arr[i], arr[m], sizeof(PRICE));
  memcpy(arr[m], &tmp, sizeof(PRICE));
}
for (int i = 0; i < n; i++) // Вывод
{
  std::cout <<
  "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
  std::cout << arr[i].tov << std::endl;
  std::cout << arr[i].mag << std::endl;
  std::cout << arr[i].cost << " Rub in " << std::endl;
}
0
0 / 0 / 0
Регистрация: 20.04.2021
Сообщений: 13
21.04.2021, 09:54  [ТС]
Спасибо, но выдает ошибки

Ошибка E0413 не существует подходящей функции преобразования из "PRICE" в "const void *" 5

Ошибка E0413 не существует подходящей функции преобразования из "PRICE" в "void *" ConsoleApplication4

Ошибка E0413 не существует подходящей функции преобразования из "PRICE" в "const void *"

Ошибка E041 3не существует подходящей функции преобразования из "PRICE" в "void *" ConsoleApplication4

Ошибка C2664 "void *memcpy(void *,const void *,size_t)": невозможно преобразовать аргумент 2 из "PRICE" в "const void *"

Ошибка C2664 "void *memcpy(void *,const void *,size_t)": невозможно преобразовать аргумент 1 из "PRICE" в "void *"

Ошибка C2664 "void *memcpy(void *,const void *,size_t)": невозможно преобразовать аргумент 1 из "PRICE" в "void *"
0
458 / 294 / 191
Регистрация: 23.06.2018
Сообщений: 678
21.04.2021, 10:33
Лучший ответ Сообщение было отмечено Wholelotta как решение

Решение

А, кхм... Поставьте перед каждым arr внутри memcpy амперсанд
&arr[m] вроде такого
1
0 / 0 / 0
Регистрация: 20.04.2021
Сообщений: 13
21.04.2021, 10:37  [ТС]
сейчас попробую

Добавлено через 2 минуты
Да, все заработало. Спасибо за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.04.2021, 10:37
Помогаю со студенческими работами здесь

Помогите, пожалуйста, исправить ошибки в коде
const int n=20; int b; int i,j,c; for (i=1;i&gt;n,i++) { c=a; for(j=i-1;j&gt;=0&amp;&amp;a&gt;c;j--) a=a; a=c; }

Подскажите пожалуйста как исправить ошибки в коде!
Помогите пожалуйста исправить ошибки в коде. Зарание спасибо! Тексты программ надо переписывать в сообщение!

Подскажите, пожалуйста, как исправить ошибки в коде (новичок)
Здравствуйте! Работаю с DOSBox 0.74-2 и MASM32. 3. Здесь ошибок нет (вроде), но и результат не утешительный (результат на скриншоте) ...

Подскажите пожалуйста как исправить ошибки в коде метода доступа для чистой и синхронной Алохи
Ошибки подчеркнуты. В С# новичок, заранее очень благодарен за помощь using System; using System.Collections.Generic; using...

Подскажите, пожалуйста, как исправить ошибки
Здравствуйте, у меня тут пример 1.3 из книги Корнеева В.Д. Параллельное программирование в MPI. Значит переписал пример из книги в Visual...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru