【发布时间】:2013-06-03 23:15:15
【问题描述】:
在使用 MATLAB 2 年多之后,我刚刚开始自学 C++,并且想要一些更强大的东西。我目前正在使用带有 MinGW 的 code::blocks 我正在尝试使用 int 和 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");
}
我做错了什么?我需要进行哪些更改才能使其正常工作?
另外,我认为我错误地调用了我的函数并试图在它们之间错误地传递值 - 这样做的正确方法是什么?
【问题讨论】:
标签: c++ int double mingw codeblocks