数组输入不工作
array input not working
问题:
输入数据将在第一行给出测试用例的数量。然后,测试用例本身将紧随其后,每行一个用例。每个测试用例描述一个正整数数组,其值为0,表示结束。(这个零不应该包含在计算中!!)答案应该包含每个数组的平均值,四舍五入到最接近的整数(参见四舍五入任务),用空格分隔。
问题:
工作得很好,但在第三个索引sum被分配了arrayInput的值,它把一切都搞砸了。为什么会发生这种情况,我该如何解决它?
//araytest
#include<cmath>
#include<iostream>
using namespace std;
int main()
{
//var
int i = 0;
int array[13] = {};
//take in # arrays
cin >> i;
for(int x = 0; x<i; x++ )
{
//reset variables (for every array)
float arraySize = 0,
sum = 0, avg = 0;
int indice = 0,
arrayInput = 0;
while(cin >> arrayInput){
if(arrayInput == 0)
{
if(indice == 0)
{
arraySize = 1; /*if only 0 put in first indice
to prevent divide by 0 */
break;
}
else
{
arraySize = indice; // 0 doesn't count
break;
}
}
sum += arrayInput;
array[indice] = arrayInput;
arrayInput = 0;
indice++;
}
avg = round(sum/arraySize);
cout << avg << " ";
}
return 0;
}
首先,正如其他人所说,您在此代码中使用的数组是完全无用的。它除了保存arrayinput什么也没做。
第二,让arraysize sum avg的类型为float。然而,arrayinput被赋值为整数!!这意味着你永远不会得到这样的结果。所以你为变量声明的类型是没有意义的。它们应该有相同的类型声明。我不明白为什么你的代码不能很好地工作。因为如果你输入整数,就不会出错。但如果你给数字2,它就会崩溃。XXX或x.xxx。
相关文章:
- 输入数据成员未按要求工作
- 实现 DFS 在较短的输入下工作正常,但在较大的输入下会抛出分段错误
- 当输入在带有空格的单行中给出时,cin 如何在 while 循环中工作?
- 为什么我的 while 循环对于特定输入中断,而对于其他输入工作正常?
- 适用于 macOS 的 Xcode 应用程序。这就是我设置从USB麦克风输入获取音频的方式。一年前工作,现在没有了。为什么
- 如果我决定输入 (1 2) 而它要求 x,为什么我的输出会出错,但如果我输入 (12) 工作正常
- C++ 用户输入验证无法正常工作
- 我正在努力处理多维数组输入和输出,我管理输入,但是打印无法按计划工作
- 用于了解输入和输出流缓冲区实际工作方式的程序
- 输入数据类型检查循环未按预期工作 (C++)
- 我可以更改将引用参数传递到指针中并使其正常工作的函数的输入(C、C++)吗?
- 当我尝试输入时程序停止工作
- C++参数化构造函数使代码在传递大输入时停止工作
- 连续 cin 输入在C++中的工作原理
- 为什么我的程序在输入main()之前停止工作
- C++输入重定向导致文件参数工作时出错
- 在我的输入中没有空格的情况下,程序工作正常?C++
- 有人可以向我解释一下这段代码是如何工作的吗?(程序在预期数值且用户输入其他输入时再次要求用户输入)
- 试图让while循环工作,当输入符号而不是字符时会中断
- 找出一个正方形逻辑中可能的网格数量,但代码不接受超过六个输入,它停止并说.exe停止工作