gpt4 book ai didi

c++ - `int` 与 `double` 的问题 - 为什么我的程序不工作?

转载 作者:行者123 更新时间:2023-11-28 07:35:06 27 4
gpt4 key购买 nike

在使用 MATLAB 两年多之后,我才刚刚开始自学 C++,并且想要一些更强大的东西。我目前在 MinGW 中使用 code::blocks 我正试图掌握使用 intdouble 的窍门,但由于某种原因,我的小测试程序无法运行。

该程序是我练习使用函数的一种方式。该程序从用户那里获取数字,并在插入负数时停止。然后,它吐出输入数字的总和、输入数字的乘积以及已处理数字的计数。

当我只使用 int 时,程序按预期工作,但无法处理任何抛给它的“十进制”数字 - 它吓坏了。

#include <cstdio>
#include <iostream>
#include <cstdlib>

using namespace std;

int X;
int sum;
int product;

int SUM()
{
int A = sum+X;
sum = A;
}

int PRODUCT()
{
int B=product*X;
product = B;
}

int main()
{
cout<<"Welcome to my counting program! "<<endl;
sum = 0;
product = 1;
int counter = 0;

for (;;)
{
cout<<"Give me a number: ";
cin>>X;
if (X<0)
{
break;
}
sum = SUM();
product = PRODUCT();
counter = counter+1;
}

cout<<"SUM: ";
cout<< sum <<endl;
cout<<"PRODUCT: ";
cout<< product <<endl;
cout<<"NUMBERS INPUT: ";
cout<< counter <<endl;

system ("PAUSE");
}

但是,当我在适用的地方使用 double 时,程序只为乘积和总和提供零。

#include <cstdio>
#include <iostream>
#include <cstdlib>

using namespace std;

double X;
double sum;
double product;

int SUM()
{
double A = sum+X;
sum = A;
}

int PRODUCT()
{
double B=product*X;
product = B;
}

int main()
{
cout<<"Welcome to my counting program! "<<endl;
sum = 0.0;
product = 1.0;
double counter = 0.0;

for (;;)
{
cout<<"Give me a number: ";
cin>>X;
if (X<0)
{
break;
}
sum = SUM();
product = PRODUCT();
counter = counter+1;
}

cout<<"SUM: ";
cout<< sum <<endl;
cout<<"PRODUCT: ";
cout<< product <<endl;
cout<<"NUMBERS INPUT: ";
cout<< counter <<endl;

system ("PAUSE");
}

我做错了什么?我需要更改什么才能使其正常工作?

此外,我认为我错误地调用了我的函数并试图错误地在它们之间传递值 - 这样做的正确方法是什么?

最佳答案

您仍然从函数中返回 int。此外,由于您要分配结果,因此需要返回适当的值 (sum = SUM();)。

尝试以下更改:

double /*int*/ SUM()
{
double A = sum+X;
sum = A;
return sum; // Return a value!
}

double /*int*/ PRODUCT()
{
double B=product*X;
product = B;
return product; // Return a value!
}

我还建议避免 sum/product/X 的全局变量,而是将它们声明为局部函数,然后将它们传递作为方法的参数。

关于c++ - `int` 与 `double` 的问题 - 为什么我的程序不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16907343/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com