int main() //task 10
{
int num[9], i, counter = 0, minNum, maxNum = 0, sum = 0;
for (i = 0; i <= 9; ++i)
{
scanf("%d", &num[i]);
if (num[i] > maxNum)
{
maxNum = num[i];
minNum = maxNum;
}
else if (num[i] < minNum)
minNum = num[i];
sum += num[i];
}
printf("minNum: %d, maxNum: %d\nThe average is:%d\n", minNum, maxNum, sum / 10);
return 0;
}
尝试运行此程序时出现此错误: 运行时检查失败#2 - 变量“num”周围的堆栈已损坏。 我想知道我的阵列出了什么问题。
最佳答案
使用下面的代码,您将读取数组越界
for (i = 0; i <= 9; ++i)
在这种情况下,您只能访问 0 到 8 之间的元素。更改为i < 9
.
if (num[i] < minNum)
minNum
未初始化,因此如果首先在循环中评估上述条件,您将由于读取未初始化的变量而得到未定义的行为。
关于c - 在C中使用数组时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33618637/