我不知道为什么我从我的函数中获取此输出

时间:2017-10-03 22:14:04

标签: c++

我的功能应该是用户输入美元和可选的便士并将其转换为所有美分结果。但由于某些原因,我得到的数字比数学应该产生的数字更大。这是我的代码。

#include

这个输出是5060和4000.我很困惑,因为5次100加6应该产生506,就像评论所指出的那样。我不确定为什么5次100和6次得到506的结果。从数学上来说,我不能看出我的错误,但也许是因为我的代码有原因?

3 个答案:

答案 0 :(得分:0)

您应该从NumberOfPennies返回totalPennies(而不是在NumberOfPennies中打印)。现在,您在NumberOfPennies(506)中打印正确的结果,然后添加您返回的0。

答案 1 :(得分:0)

不知道你为什么在参数中加上penny = 0; 如果需要,请覆盖该方法。

额外的“0”来自NumberOfPennies中的“return 0”。

在main函数中,您打算输出NumberOfPennis(5,6)的值,该值的值为0,这就是为什么得到5060而不是506的原因。

答案 2 :(得分:0)

你必须像电脑一样思考。

Public <= x , CrimeType == y and Year == z. 

指示计算机拨打const express = require('express') const app = express() app.use(express.static('public')) //adds content of public folder app.get('/', function (req, res){ res.sendFile('/views/index.html', {root: __dirname}) }) app.listen(1337, function (){ console.log('lab5-server.js listening on 1337') }) 并打印出<!DOCTYPE html> <html> <head> <title>Page Title</title> </head> <body> <h1> <center> Welcome to Matt's Page </center></h1> <center> <img src = "images/AlgorithmofSuccess.jpg"/> </center> 返回的值。

但是在cout << NumberOfPennies(5, 6) << endl; 内,您

NumberOfPennies

在返回数字0之前打印减少的便士数,在这种情况下为506。

所以

  1. 计算totalPennies。
  2. 打印totalPennies。
  3. 0返回。
  4. 0已打印。
  5. 打印行尾并刷新流
  6. 输出

    NumberOfPennies

    我认为有两种选择是合理的:

    1. 执行NumberOfPennies
    2. 中的所有打印
    3. 返回cout << totalPennies; 并在 5060 totalPennies^^return value
    4. 中进行打印

      我的偏好是选项2,因为它使NumberOfPennies的责任仅限于做一件事:计算便士的数量。如果totalPennies除了计算之外什么都不做,那么任何函数现在都可以调用main并对结果执行任何操作,包括print。例如,在另一个计算中使用NumberOfPennies或甚至作为自身的输入:

      NumberOfPennies

      所以

      NumberOfPennies

      请注意,NumberOfPennies的返回类型已更改为匹配NumberOfPennies(64, NumberOfPennies(3,6)); ,并且#include <iostream> using namespace std; int NumberOfPennies(int dollars, int pennies = 0) { int totalPennies = (dollars * 100) + pennies; return totalPennies; } int main() { cout << NumberOfPennies(5, 6) << endl; // Should print 506 cout << NumberOfPennies(4) << endl; // Should print 400 return 0; } 不再初始化为零,因为该零会立即被计算结果覆盖。这意味着如果我们想要,我们也可以更进一步:

      NumberOfPennies