这当然原因非常多,比如:编译器编译不够严格、程序有很大的风险等等,最简单的一个例子如下:
int a;
scanf("%d",a);
可以确定的一点是:一旦在运行中出现错误,大多是较为严重的错误,须引起重视,否则,一旦错误非常严重,必会导致许多严重的后果,如死机、卡屏甚至直接导致蓝屏。
这哪是编译正确,这是有一个语法错误的意思,这样的程序是无法运行的。
最后一句的语法错了
应该是printf("%4d %d\n",i,slect[i]);
双引号中间是格式控制字符串,用于控制输出的字符串以及变量的格式,
变量需要放在双引号外头,用逗号分隔。
编译正确只是代表程序没有语法错误,至于逻辑错误是无法判断的。
但是你的程序明显提示有错误,需要修改
printf("%4d %d\n",i,slect[i]);
编译正确不代表着就能够正确执行了
编译正确说明只能说明语法上没有出现问题
而执行不了,有可能是你的逻辑有问题
建议详细检查代码,确证语法、逻辑都没有错误后,再编译执行
编译正确只是代表程序没有语法错误,无法判断逻辑错误。
仔细检查你的程序,判断逻辑流程是否有误。