在使用 MATLAB 工作 2 年多之后,我刚刚开始自学 C++,并且想要一些更强大的东西。我目前正在将 code::blocks 与 MinGW 一起使用,我正试图掌握使用int
and的窍门double
,但由于某种原因,我的小测试程序无法正常工作。
该程序是我练习使用函数的一种方式。该程序从用户那里获取数字,并在插入负数时停止。然后,它会输出输入数字的总和、输入数字的乘积以及已处理数字的计数。
当我只使用 时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");
}
我究竟做错了什么?我需要改变什么才能让它工作?
另外,我认为我错误地调用了我的函数并试图在它们之间错误地传递值-正确的方法是什么?