为啥我的代码输出有 4745728 作为输出? [关闭]
Posted
技术标签:
【中文标题】为啥我的代码输出有 4745728 作为输出? [关闭]【英文标题】:Why the output of my code has 4745728 as the output? [closed]为什么我的代码输出有 4745728 作为输出? [关闭] 【发布时间】:2021-04-29 21:12:32 【问题描述】:每当用户输入 1-5 之间的正整数时,我正在制作一个简单的程序来计算用户余额。我只为第一个选项编写代码,但输出中发生了一些奇怪的事情,这是我的代码:
#include <iostream>
using namespace std;
int balance = 100000;
int iNet = 59900;
int internet(int iNet, int code, int remain)
if(code == 1)
remain = balance - iNet;
cout << "Price = " << iNet << endl;
cout << "Remaining credit = " << remain <<endl;
int main()
int code, remain;
cin >> code;
cout << internet(iNet, code, remain);
return 0;
但是当我运行程序时,它显示如下:
用户输入
1
程序输出
Price = 59900
Remaining credit = 40100
4745728
我不知道4745728
来自哪里。
【问题讨论】:
你从来没有return
任何来自 internet()
函数的东西。我可以建议获得a good C++ book 吗?您当前的学习资源似乎无法解释编码的基础知识。
已经尝试输入return 0;
,结果输出也输入0
,这不是我想要的。
那你想要什么?请注意,您必须始终准确返回 1 个整数。
@drescherjm 删除 4745728
的东西
您还需要将函数更改为void internet(int iNet, int code, int remain)
。否则你的程序有未定义的行为。
【参考方案1】:
如果您不想从函数返回任何内容,请将返回类型设为void
:
void internet(int iNet, int code, int remain)
// ^
if(code == 1)
remain = balance - iNet;
cout << "Price = " << iNet << endl;
cout << "Remaining credit = " << remain <<endl;
然后编译器将不再允许你打印垃圾值,你将不得不修复你的 main:
int main()
int code, remain;
cin >> code;
internet(iNet, code, remain);
//^ don't print anything, just call the function
return 0;
【讨论】:
以上是关于为啥我的代码输出有 4745728 作为输出? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章