c语言,为什么我输不出结果来?

如图:

img

img

#include<stdio.h>
int main()
{
    int a[10000],n;
    scanf("%d",&n);
    int i;
    for (i=0;i<n;i++)
    {
        scanf("%d",a[i]);
    }
    int t,m;
    for (i=0;i<n;i++)
    {
        if (a[i]>a[i+1])
        {
            t = a[i];
            a[i] = a[i+1];
            a[i+1] = t;
        }
    }
    for (int j=0;j<n;j++)
    {
        if (a[j+1] - a[j] == 1)
        {
            m=0;
            m++;
        }
        else break;
    }
    printf("%d",m);
    return 0;
 } 


#include<stdio.h>
int main()
{
    int n, i, j;
    scanf("%d", &n);
    int a[n];      // 你只有n个数, 不用申请10000个空间 
    
    for (i = 0;i < n; i++){
        scanf("%d", &a[i]);
    }
    
    // 如果我没看错, 你是想用冒泡排序, 建议看看冒泡排序的定义
    for (i = 0; i < n - 1; i++){
        for (j = 0; j < n - i - 1; j ++){
            if (a[j] > a[j + 1]){
                int temp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = temp; 
            }
        }
    } 
    
    for (i = 0; i < n; i++)
        printf("%d ", a[i]);
    
    // 统计连续数字的个数
    int count = 1;    // 计数, 本身就算一个 
    int MAXCount = 0;   // 记录最大连续长度 
    for (i = 1; i < n; i++){    
        if (a[i] - a[i - 1] == 1)
            count += 1; 
        
        else{
            if (count > MAXCount)
                MAXCount = count ; // 收集最大长度
            
            count = 0; // 重新置零计数 
        }
    } 
    
    printf("%d",MAXCount);
    return 0;
 } 
 

你第九行代码 scanf("%d",a[i]);没有加取地址符号 scanf("%d",&a[i]);