C++编译后生成的文件执行后没有结果,如何解决?

问题遇到的现象和发生背景

使用C++编写了一段代码,编译后执行没有响应
Linux下使用vim和g++

问题相关代码,请勿粘贴截图
#include<iostream>
using namespace stdl;
int main(){
        int n;
        int a[10];
        for(int i=1;i<=n;i++)
                scanf("%d",&a[i]);
        int p=1;
        while(p=!-1){
                p=a[p];
                printf("%d",a[p]);
        }
        return 0;
}

运行结果及报错内容

vim a.cpp
g++ a.cpp
./a.out
//到这里系统是没有任何响应的

我想要达到的结果

使程序按照意图运行

n变量你没有赋值啊,系统会默认个随机值,循环时出现数组越界而程序异常结束
另外using namespace std;std后面没有l
不知道你这个n是要输入呢?还是要初始设定一个值
另外你这个程序对输入数据的要求也比较高,p=a[p],这要求输入的数据不能大于数组的大小,否则也会异常

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632