没有任何输出

时间:2015-12-16 17:31:39

标签: c

我的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];
    }
}

为什么我没有输出?

2 个答案:

答案 0 :(得分:3)

如果'\n'中缺少printf(),可能是因为您的数组change是一个太小的元素:作为数组大小,您使用与设置{{1}相同的表达式所以n是最大可能的索引。但是然后你从1循环到n并为n-1分配一些东西。这会调用Undefined Behavior,因此可能会发生任何事情。

答案 1 :(得分:-3)

将文件另存为.cpp格式。它在我的PC上运行并输出16次整数(正面和负面),而我将其保存为.cpp格式。快照已经给出了。试试吧。谢谢

enter image description here