Member 13479017 Ответов: 1

Как мне получить правильные ответы?


/* 	Program:		prog3.cpp
	By:				Mackenzie Ritter
	Last Modified:	Oct 31, 2017
	Purpose:		To give customer their cost based on amount of books purchased.
	Notes:
*/
#include 
#include 

using namespace std ;

void Instructions () ;
void numBooks () ;
void totalCost (int) ;
void percentoff (float) ;
void finalCost (float, float) ;
void receipt (int, float, float, float) ;

int main ()
{
	int books ;
	float total, cost, discount ;
	Instructions () ;
	numBooks () ;
	totalCost (books) ;
	percentoff (total) ;
	finalCost (discount, total) ;
	receipt (books, total, discount, cost) ;	
}

void Instructions ()
{
	cout > books ;
}

void totalCost (int books)
{
	float total = books * 8.99 ;
}

void percentoff (float total)
{
	float discount = 0.15 * total ;
}

void finalCost (float discount, float total)
{
	float cost = total - discount ;
}

void receipt (int books, float total, float discount, float cost)
{
	cout << books << endl ;
	cout << "$" << total << endl ;
	cout << discount << "% off" << endl ;
	cout << "$" << cost << endl ;
}


Что я уже пробовал:

Я попытался настроить параметры, потому что я считаю, что они были неправильными раньше. Когда я запускаю программу, она дает мне странный результат. Например, когда он попросит у меня несколько книг, я введу 2, и программа выдаст
"-2091432192
$4.59163 e-41
Скидка 0%
$0"
Если бы вы могли мне помочь, я был бы вам очень признателен.

Richard MacCutchan

Где находится код для этого numBooks функция? Кроме того, ваш Instructions функция не будет работать (или даже компилироваться).

Member 13479017

Извините, я думаю, что кто-то отредактировал мой вопрос. Код должен быть таким:
недействительные инструкции ()
{
cout << "эта программа запросит количество приобретаемых книг. Затем он рассчитает вашу скидку и предоставит общую стоимость." << endl ;
}

инт numBooks ()
{
инт книг ;
cout << endl << "введите количество книг, которые вы хотите приобрести". << endl ;
cin >> книги ;
}
..... по этой части.

Richard MacCutchan

Я только что проверил, и единственное, что сделал этот человек, - это добавил теги " pre " вокруг вашего кода, чтобы его было легко читать.

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

Member 13479017

Я использовал отладчик, и он говорит, что после того, как я ввожу количество книг, 2, программа говорит, что книги равны -5040. Откуда вообще взялось это число?

1 Ответов

Рейтинг:
11

Patrice T

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

Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя отладчик Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Когда вы не понимаете, что делает ваш код или почему он делает то, что он делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик - Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010 - YouTube[^]
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.