#include
#include
int main()
{
int i,j, n = 0;
int m, l, r, c;//操作次数 开始 结尾 加数
int* p = (int*)malloc(n * sizeof(int));
scanf("%d %d", &n,&m);
for (i = 0;i < n;i++)
{
scanf("%d", (p + i));
}
for (j = 0;j < m;j++)
{
scanf("%d %d %d", &l, &r, &c);
for (i = l;i <= r;i++)
{
*(p + i -1) += c;
}
}
for (i = 0;i < n;i++)
printf("%d ", *(p + i));
free(p);
return 0;
}
你得输入完n后再分配空间啊,否则n是个野值
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,j, n = 0;
int m, l, r, c;//操作次数 开始 结尾 加数
scanf("%d %d", &n,&m);
int* p = (int*)malloc(n * sizeof(int));
for (i = 0;i < n;i++)
{
scanf("%d", (p + i));
}
for (j = 0;j < m;j++)
{
scanf("%d %d %d", &l, &r, &c);
for (i = l;i <= r;i++)
{
*(p + i -1) += c;
}
}
for (i = 0;i < n;i++)
printf("%d ", *(p + i));
free(p);
return 0;
}