Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / C++ Новый топик    Ответить
 Написал код, но в нем есть ошибки в циклах  [new]
bigbro555
Member

Откуда:
Сообщений: 6
Помогите найти ошибки в циклах, ввожу несколько данных, а в конце выводит не всю анкету, а только последнюю.
#include <iostream>

#include <iomanip>

#include <string>

struct Form {
  int Имя;
  int Цена_авто;
  int Марка_авто;
  int номер;
};
using namespace std;
int main() {
  setlocale(LC_ALL, "rus");
  int i, j, k = 0;
  int vibor;
  struct Form * pdannie = NULL;
  string name[100];
  string name2[100];
  int pr[100];
  int mk[100];
  int num[100];
  int M, L, max = 0;
  M = 0;
  L = 0;
  j = 1;
  printf("М Е Н Ю\n-------------------\n");
  printf("1. Добавить запись\n");
  printf("2. Анализ анкет\n");
  printf("3. Вывод всех анкет\n");
  printf("4. Выход");
  while (1) {
    printf("\n\nВаш выбор:");
    scanf("%d", & vibor);
    switch (vibor) {
    case 1:
      /* Добавить запись */
      pdannie = (struct Form * ) realloc(pdannie, (j + 1) * sizeof(struct Form));
      cout << "Ведите количество Данных: ";
      cin >> k;
      cout << endl;
      cout << "Введите данные: ";
      for (i = 0; i < k; i++, j++) {
        cout << endl;
        cout << j;
        cout << "\tName: ";
        cin >> name[i];
        cout << endl;;
        cout << "\tSoname: ";
        cin >> name2[i];
        cout << endl;
        cout << "\tPrice: ";
        cin >> pr[i];
        cout << endl;
        cout << "\tBrand(0 - Лада; 1 - Мерс): ";
        cin >> mk[i];
        cout << endl;
        cout << "\tНомер: ";
        cin >> num[i];
        cout << endl;
      }
      j++;
      break;
    case 2:
      {
        for (i = 0; i < k; i++) {
          if (pr[i] > pr[i - 1]) {
            max = pr[i];
          }
        }
        for (i = 0; i < k; i++) {
          if (mk[i] % 2) {
            M++;
          }
          if (!(mk[i] % 2)) {
            L++;
          }
        }
        cout << "\nКоличество владельцов Лада:";
        cout << L;
        cout << "\nКоличество владельцов Мерседес:";
        cout << M;
        cout << endl;
        cout << "Самая дорогая машина стоит: " << max << " тг" << endl;
        cout << endl;
      }
      break;
    case 3:
      /* Вывод всех анкет */
      cout << "\nВсе анкеты:\n";
      cout << "=============================================================\n";
      cout << "Имя            Цена Авто   Марка Авто         Номер\n";
      cout << "=============================================================\n"; {
        for (i = 0; i < k; i++)
          cout << name2[i] << setw(15);
        cout << pr[i] << setw(15);
        if (mk[i] % 2) {
          cout << "Mers" << setw(15);
        }
        if (!(mk[i] % 2)) {
          cout << "Lada" << setw(15);
        }
        cout << num[i] << endl;
        cout << name[i] << endl;
        break;
        case 4: // Выход
          free(pdannie);
        exit(0);
        break;
      }
    }
  }
}

Модератор: Отформатировано

Создать базу данных "Автомобиль", включающую: ФИО владельца, стоимость, марка и номер автомобиля. Количество записей в базе должно быть не менее 10. Программа должна предусматривать выдачу:

- Цена самого дорогого автомобиля;
- количество автомобилей одной марки по запросу.
Вот само задание.
Плиз помогите

Сообщение было отредактировано: 20 апр 20, 15:30
19 апр 20, 19:51    [22118910]     Ответить | Цитировать Сообщить модератору
 Re: Написал код, но в нем есть ошибки в циклах  [new]
Cerebrum
Member

Откуда: Омикрон Персей 8
Сообщений: 7937
после
for (i = 0; i < k; i++)

не забыл новый блок { открыть ?

зачем так делать?

if (mk[i] % 2)
{
cout << "Mers" << setw(15);
}
if (!(mk[i] % 2))
{
cout << "Lada" << setw(15);
}

у проверки на четность может быть больше 2-х состояний (четное - нечетное) ?
используй if (четное/нечетное) else - остальное
19 апр 20, 21:23    [22118930]     Ответить | Цитировать Сообщить модератору
 Re: Написал код, но в нем есть ошибки в циклах  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 49957

bigbro555
Помогите найти ошибки в циклах

пошаговая отладка тебе поможет. Ошибка будет там, где реальное поведение программы начнёт
отличаться от ожидаемого. Ты же знаешь, как она должна работать с точностью до строчки, не
так ли?..

Posted via ActualForum NNTP Server 1.5

19 апр 20, 22:05    [22118943]     Ответить | Цитировать Сообщить модератору
 Re: Написал код, но в нем есть ошибки в циклах  [new]
Алексей Роза
Member

Откуда: РФ
Сообщений: 144
научись разбивать код на функции
19 апр 20, 22:29    [22118954]     Ответить | Цитировать Сообщить модератору
 Re: Написал код, но в нем есть ошибки в циклах  [new]
bigbro555
Member

Откуда:
Сообщений: 6
Алексей Роза,
Я бы с радостью разбил на функции, но наш преподаватель запрещает это делать в этом задании.
20 апр 20, 10:16    [22119062]     Ответить | Цитировать Сообщить модератору
 Re: Написал код, но в нем есть ошибки в циклах  [new]
bigbro555
Member

Откуда:
Сообщений: 6
Cerebrum,
Я не понял, пожалуйста напишите правильный код
20 апр 20, 10:31    [22119070]     Ответить | Цитировать Сообщить модератору
 Re: Написал код, но в нем есть ошибки в циклах  [new]
Cerebrum
Member

Откуда: Омикрон Персей 8
Сообщений: 7937
bigbro555,

ага, мне больше делать нечего
иди к тому у кого ты скомуниздил решение (я не верю что ты это написал сам) и разбирайтесь вместе

К сообщению приложен файл. Размер - 8Kb
20 апр 20, 11:45    [22119109]     Ответить | Цитировать Сообщить модератору
 Re: Написал код, но в нем есть ошибки в циклах  [new]
Dima T
Member

Откуда:
Сообщений: 14727
Алексей Роза
научись разбивать код на функции

Чем это поможет в реальной жизни? Преждевременная оптимизация это зло.
20 апр 20, 21:24    [22119460]     Ответить | Цитировать Сообщить модератору
 Re: Написал код, но в нем есть ошибки в циклах  [new]
mayton
Member

Откуда: loopback
Сообщений: 46320
Алексей я удалил сообщения не релевантные к теме топика. Если тебе интересен рефакторинг - создай отдельный
топик на эту тему. А здесь - помогай новичку с циклами.

И не пиши больше оффтоп. Это модераторская просьба.
21 апр 20, 10:48    [22119708]     Ответить | Цитировать Сообщить модератору
Все форумы / C++ Ответить