我的main.c文件的内容
#include <stdio.h>
#include "max_subarray_data.h"
int main()
{
init_change();
for(int i=0;i<n;i++)
{
printf("%d %d\n",i,change[i]);
}
}
max_subarray_data.h的内容
extern int price[];
extern int change[];
extern int n;
void init_change();
我的max_subarray_data.c
的内容int price[]={100,113,110,85,105,102,86,63,81,101,94,106,101,79,94,90,97};
int n=(int)(sizeof(price)/sizeof(int))-1;
int change[(int)(sizeof(price)/sizeof(int))-1];
void init_change()
{
for(int i=0;i<n;i++)
{
change[i]=price[i+1]-price[i];
}
}
为什么我没有输出?
答案 0 :(得分:3)
如果'\n'
中缺少printf()
,可能是因为您的数组change
是一个太小的元素:作为数组大小,您使用与设置{{1}相同的表达式所以n
是最大可能的索引。但是然后你从1循环到n并为n-1
分配一些东西。这会调用Undefined Behavior,因此可能会发生任何事情。
答案 1 :(得分:-3)
将文件另存为.cpp格式。它在我的PC上运行并输出16次整数(正面和负面),而我将其保存为.cpp格式。快照已经给出了。试试吧。谢谢