![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 09.11.2011
Сообщений: 7
|
![]()
вот код помогите , а то вылезает это ошибка в конце при вводе счета плательщика
#include "stdafx.h" #include <iostream> #include <string.h> using namespace std; struct ORDER { char CustomerBill[255]; char PayerBill[255]; long int Sum; }; ORDER SetOrderValues() { ORDER temp; cout << "vvedite raschetnii schet pokupatelya: "; cin >> temp.CustomerBill; cout << "vvedite raschetnii schet platilchika: "; cin >> temp.PayerBill; cout << "vvedite summu v rublyah: "; cin >> temp.Sum; return temp; } void OrderArrayToConsole(ORDER Array[], int ArrayLen) { for (int i = 0; i < ArrayLen; i++) { cout << "informacia po " << i+1 << " schetu:" << endl; cout << "schet platilchika: " << Array[i].PayerBill << endl; cout << "schet pokupatelya: " << Array[i].CustomerBill << endl; cout << "summa v rublyah: " << Array[i].Sum << endl << endl; } } void SortOrderArray(ORDER Array[], int ArrayLen) { ORDER temp; for (int i = 0; i < ArrayLen; i++) for (int j = i+1; j < ArrayLen; j++) if (strcmp(Array[i].PayerBill, Array[j].PayerBill) > 0) { temp = Array[i]; Array[i] = Array[j]; Array[j] = temp; } } int GetOrderSum(ORDER Array[], int ArrayLen, char* CustomBill) { long int Result = -1; for (int i = 0; i < ArrayLen; i++) if (strcmp(Array[i].PayerBill, CustomBill) == 0) { Result = Array[i].Sum; break; } return Result; } int main() { int aLen = 0; // Кол-во счетов, размер будущего массива do { cout << "vvedite kol-vi schetov : "; cin >> aLen; } while (aLen < 1 || aLen > 8); ORDER *OrderArray = new ORDER[aLen]; // Динамически создали массив элементов ORDER for (int i = 0; i <= aLen; i++) { cout << "vvedite dannie dlya " << i+1 << " scheta:" << endl; OrderArray[i] = SetOrderValues(); // Заполняем для каждого элемента все его значения } SortOrderArray(OrderArray, aLen); // Сортируем "пузырьком" элемента массива по алфавиту cout << "otsortirovannii macciv schetov:" << endl; OrderArrayToConsole(OrderArray, aLen); // Выводим на консоль элементы массива char Bill[255]; cout << "vvedite schet platilchika: "; cin >> Bill; int Sum = GetOrderSum(OrderArray, aLen, Bill); (Sum == -1) ? cout << "scheta ne suchestvuet" : cout << Sum << " rub"; return 0; } |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 23.12.2011
Сообщений: 117
|
![]()
< не <= - выход за пределы массива
... ORDER *OrderArray = new ORDER[aLen]; for (int i = 0; i < aLen; i++) { cout << "vvedite dannie dlya " << i+1 << " scheta:" << endl; ... |
![]() |
![]() |
![]() |
#3 |
Регистрация: 09.11.2011
Сообщений: 7
|
![]() |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
![]()
Prokill
у вас жуткая смесь Си и C++ кода, иными словами, типичный говнокод. правильный способ ввода массива структур ORDER Код:
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Nero - ошибка драйвера DMA. ошибка CRC | NecRoMat | Софт | 5 | 09.05.2012 01:29 |
ошибка очистки памяти символьного массива BLOCK_TYPE_IS_VALID(pHead->nBlockUse) | dasvex | Помощь студентам | 2 | 08.08.2011 02:05 |
BLOCK_TYPE_IS_VALID(pHead->nBlockUse) | mansp | Общие вопросы C/C++ | 4 | 07.04.2011 17:56 |
Ошибка run-time Error 1004 общая ошибка ODBC | kaval88 | Microsoft Office Excel | 0 | 27.02.2011 20:20 |
Ошибка в коде, ошибка в css или это проблема с совместимостью с браузерами? | ankris | HTML и CSS | 5 | 23.11.2010 16:58 |