我正在研究一个在线代码学校的简单算法。以下算法在我的 Xcode 控制台上运行良好,但在线平台输出我正在溢出内存。以下代码处理股票的筛选。(我第一次使用 malloc 动态分配,但是在这个消息之后,我使用了简单的数组,见下文)。
假设您有 N 种产品的库存。假设初始库存由大小为 N 的一维数组 ( c[i], i between 0 and N-1
) 设置。现在假设有 M 个操作,每个操作由两个条目表示:产品的索引和输入的产品数量。结果输出库存的每个产品的最终状态。这是一个例子:
输入 :
3(产品数量)4 6 3(产品'1'的4个项目,产品'2'的6个,...)2(操作数量)2 3(产品'2'的3个元素)1 -1(1 个元素减去产品“1”)
输出 :
3(产品“1”左侧 4-1) 9(产品“2”左侧 6+3) 3(产品“3”左侧)
这是我的代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{ int i,j,N,M;
//Number of products
scanf("%d",&N);
//Initial stock of each product
int c[N];
//Input if the user
for (i = 0; i < N; i++) {
scanf("%d", &c[i]);}
//Outputs's result
int res[N];
//Initializing the output res
for (i = 0; i < N; i++) {
res[i] = c[i];}
//Number of operations
scanf("%d",&M);
//Each operation represented by the index of the product, and the number elements of the //latter
int d[M][2];
//A loop to update at each step the stock
for (i = 0; i < M; i++) {
scanf("%d%d", &d[i][0],&d[i][1]);}
for(i=0;i<M;i++){
res[d[i][0]-1] = res[d[i][0]-1] + d[i][1];}
//Printing the result
for(i=0;i<N;i++){
printf("%d ",res[i]);}
}
有人有想法吗?