我给了一个任务,它是这样的:数组S[j](= 0,.,7)至少有一个零元素。写一个程序来计算这个数组中直到第一个零元素的元素的总和。
数组必须为double。
我试过了。但我得到了0;
/* S[j] = ( =0,…,7) massivda bittagina bo‘lsa ham nolga teng elementi mavjud.
Ushbu massivning qiymati nolga teng bo‘lgan birinchi elementgacha bo‘lgan
elementlarning yig‘indisini hisoblash dasturini tuzing. Boshlang‘ich
ma’lumotlar: 1, 17, 2, 4, -5, 0, 7, 8. */
#include <iostream>
using namespace std;
int main()
{
int j;
cout << "j:"; cin >>j;
double S[j] = {};
int P;
for (int i = 0; i >= j-1; i++)
{
cout << "S[" << i << "]:"; cin >> S[i];
}
for (int i = 0; i >= j; i++)
{
if (S[i] == 0) break;
else P += S[i];
}
cout << P;
return 0;
}
字符串
2条答案
按热度按时间vxbzzdmp1#
有几个问题。
错误是:
vector
);P
未初始化;i < j
而不是i >= j-1
)。建议如下:
sum
比P
更好,array
比S
更好);sum
);"How many doubles you need?"
优先于"j:"
)using namespace std
;i
,j
.代码:
字符串
qzwqbdag2#
像这样的可变长度数组
字符串
其中
j
不是编译时常量表达式,它们不是标准C++特性。如果你想处理一个数组,那么你需要动态地分配它,就像
型
或
型
或
型
在程序结束时,你需要释放数组,如
型
或者使用标准的cintainer
std::vector<double>
。两个for循环由于其条件而被跳过
型
如果
j
至少大于1
,因为0
不能大于任何正数。循环应该看起来像
型
和
型
变量
P
应具有double
类型,并且必须初始化为零型