【发布时间】:2016-07-28 15:53:14
【问题描述】:
我正在尝试为我的作业做一个特定的计数器,但我尝试了很多方法,但我仍然无法弄清楚。
我的程序允许用户根据输入找出三角形的类型。
所以我确实有两个主要功能来确定三角形的形状并显示计数器。
char shapeTriangle(int, int, int); //确定三角形的形状,即等腰('I'),等边('E')
int summaryDisplay(char); // 显示计数器
在我的shapeTriangle 函数中,我有一个简单的 if else 语句,它根据用户输入返回类型
char shapeTriangle(int x, int y, int z)
{
char type;
if (x == y && y == z && x == z)
type = 'E';
else if (x == y || y == z || x == z)
type = 'I';
return type;
}
在我的main function,我有一个循环允许用户输入,直到其中一个值为 0。
在summaryDisplay,我正在尝试计算确定某个三角形的次数
int finalSum(char type)
int eCount = 0, iCount = 0;
if (type == 'E')
eCount++;
if (type == 'I')
iCount++;
cout << "Equilateral" << eCount;
cout << "Isosceles" << iCount;
}
我设法获得了一个输出,但是计数器返回给我一些奇怪的值,例如 540934 或 3453 等,我无法真正弄清楚它们。
这就是我尝试在int main 中调用我的函数的方式
int main()
{
int x, y, z;
do{
cout << "Enter 3 intgers : ";
cin >> x >> y >> z;
//some display output codes
}while ( x != 0 && y != 0 && z != 0);
finalSum(shapeTriangle(x, y, z));
}
感谢任何帮助。
编辑 1: 我尝试初始化,但是,它为所有不同类型返回 0。
【问题讨论】:
-
如果您的条件都不为假,则返回未初始化的
type。 -
eCount,iCount也没有初始化。 -
我尝试初始化为 0,但似乎仍然返回 0 个计数器