我要求一到一百所有的偶数的乘积,为什么运算结果变成0了,请问我哪里是出问题了,求各位告知
在C语言中,当计算机处理大数字乘积时,需要使用一些数据类型来存储这些数字,例如long、long long等。当乘积过大超出数据类型的范围时,会出现数据溢出的情况,从而导致计算结果不正确。
在这个问题中,如果您使用了int数据类型来存储乘积,那么当乘积超过int类型的范围时,就会出现数据溢出的情况,从而导致计算结果变成0。
为了避免这种情况,您可以使用long long类型来存储乘积,或者使用一些高精度计算库来处理大数字乘积。另外,还需要注意循环中的条件是否正确,是否确保只计算偶数的乘积。
这数字太大了,溢出了
不知道你这个问题是否已经解决, 如果还没有解决的话:有序是指奇数的相对位置不变,偶数的相对位置也不变
void orderSort(int a[])
{
int i, j, k, x;
for (i = 0; ; i++)
{
while (a[i] % 2) i++; //找到从左到右第一个偶数
j = i + 1;
while (!(a[j] % 2)) j++; //找到该偶数右边第一个奇数
if(j > 9) break; //便利完退出循环
for (x = j; x > i; x--) //向左冒一次泡(大概这个意思)
{
k = a[x];
a[x] = a[x - 1];
a[x - 1] = k;
}
printfArray(a);
}
}