arrays - 为数组动态分配空间并尝试约束值
问题描述
我的代码动态分配内存。我正在尝试存储对所存储的值保持约束的元素,但是当我保持约束时它不起作用。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, i, sum = 0;
int *arr;
scanf("%d", &n);
if (n >= 1000 || n <= 1)
{
return 0;
}
arr = (int *)malloc(n * (sizeof(int)));
for (i = 0; i < n; i++)
{
if (arr[i] >= 1000)
{
return 0;
}
scanf("%d", &arr[i]);
sum += arr[i];
}
printf("%d", sum);
return 0;
}
我认为错误就在这里
for (i = 0; i < n; i++)
{
if (arr[i] >= 1000)
{
return 0;
}
scanf("%d", &arr[i]);
sum += arr[i];
}
解决方案
if (arr[i] >= 1000)
{
return 0;
}
scanf("%d", &arr[i]);
if
语句检查arr[i]
before的值scanf
实际上是读入的值。scanf
需要在if
语句之前运行。
推荐阅读
- javascript - 语法错误:Illegal Break Statement on using next in middleware to pass to other middleware
- typescript - 推理问题:“......在其自己的初始化程序中直接或间接引用”
- r - Titling a Histogram based on the Column Name
- apache-kafka - 将分区添加到现有 Kafka 主题对生产者/消费者行为的影响
- elasticsearch - 无法运行logstash。路径名包含空字节
- javascript - 使用 .call() 和原型继承之间的区别
- javascript - Firebase 功能未部署在颤振中
- javascript - 如何将一个 div 放在其父级下方,但将其他 div 保持在同一位置?
- python - 在另一个数据框中划分数据框中具有空值的行
- c++ - C ++迭代搜索混合类型映射