c语言相邻数作差并将差值输出

在相邻数作差上编程不成功,求解惑。
#include
int main()
{
int n=0,i,j,temp,m;
int a[i];
scanf("%d",&n);
for(i=0;i
{
scanf("%d",&a[i]);
}
for(i=0;i
{
for(j=0;j
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}

// for(i=0;i// {
// printf("%d ",a[i]);
// }

int b[m];
for(i=0;i
{
    for(m=0;m
    {
    b[m]=a[i+1]-a[i];
    }
}
for(m=0;m
{
printf("%d ",b[m]);
}
return 0;

}

简单调试了一下 你对比一下看看你的问题

img

你的i没有定义,m也没定义程序怎么知道i和m表示哪个值,将i和m先初始化

做差不需要用交换,如果你想得到差值的绝对值可以使用绝对值函数abs();你这样做交换会直接修改原数列的,那么他们的相邻位置也可能会变。
另外,如果你使用的编译器支持的标准是ANSI C的话,你的数组定义就是错的,它会说在方括号内你使用了变量而不是常量