为什么C语言程序编译正确但不能执行? 为什么C编译器可以编译,但不能执行

\u8fd9\u4e2aC\u8bed\u8a00\u7a0b\u5e8f\u7f16\u8bd1\u6ca1\u95ee\u9898 \u4e3a\u4ec0\u4e48\u6267\u884c\u4e0d\u4e86\uff1f

\u95ee\u9898\u4e00\uff0cscanf\u540e\u9762\u7684\u53c2\u6570i\u5e94\u8be5\u53d6\u5730\u5740\uff0c\u4e5f\u5c31\u662f\u7528&i\uff0c\u5426\u5219\u4f1a\u51fa\u73b0\u6bb5\u9519\u8bef
\u95ee\u9898\u4e8c\uff0cswitch\u51fd\u6570\u4e2dcase\u540e\u9762\u5e94\u8be5\u8ddf\u7684\u662f\u6574\u6570\u503c0\uff0c1\uff0c2\u3002\u3002\u3002\u3002
\u5982\u679c\u7528\u5355\u5f15\u53f7\u5f15\u8d77\u6765\u8868\u793a\u4e0e\u5b57\u7b260\uff0c1\uff0c2\u3002\u3002\u3002\u3002\u7684ascii\u7801\u8fdb\u884c\u6bd4\u8f83\uff0c\u6240\u4ee5\u53bb\u6389\u5355\u5f15\u53f7

\u6267\u884c\u7684\u65f6\u5019\u9700\u8981\u7684\u5e93\u672a\u80fd\u6b63\u786e\u627e\u5230\uff0c\u5efa\u8bae\u4f60\u91cd\u65b0\u5b89\u88c5\u6216\u8005\u5728\u9009\u9879\u4e2d\u6307\u5b9a\u8f93\u51fa\u3001\u7cfb\u7edf\u5e93\u7684\u8def\u5f84\uff0c\u6216\u8005\u5728OPTIONS\u91cc\u6709\u4e00\u9879Directories,\u628a\u91cc\u9762\u7684Output Directory\u8bbe\u7f6e\u6210\u4f60\u81ea\u5df1\u7684\u8def\u5f84,\u7136\u540e\u56de\u5230Options\u91cc\u70b9\u51fb\u4fdd\u5b58\u8bbe\u7f6e(save options)\u5c31\u53ef\u4ee5\u4e86\u3002

这当然原因非常多,比如:编译器编译不够严格、程序有很大的风险等等,最简单的一个例子如下:

    int a;
    scanf("%d",a);

可以确定的一点是:一旦在运行中出现错误,大多是较为严重的错误,须引起重视,否则,一旦错误非常严重,必会导致许多严重的后果,如死机、卡屏甚至直接导致蓝屏。



这哪是编译正确,这是有一个语法错误的意思,这样的程序是无法运行的。
最后一句的语法错了
应该是printf("%4d %d\n",i,slect[i]);
双引号中间是格式控制字符串,用于控制输出的字符串以及变量的格式,
变量需要放在双引号外头,用逗号分隔。

编译正确只是代表程序没有语法错误,至于逻辑错误是无法判断的。
但是你的程序明显提示有错误,需要修改
printf("%4d %d\n",i,slect[i]);

编译正确不代表着就能够正确执行了
编译正确说明只能说明语法上没有出现问题
而执行不了,有可能是你的逻辑有问题
建议详细检查代码,确证语法、逻辑都没有错误后,再编译执行

编译正确只是代表程序没有语法错误,无法判断逻辑错误。
仔细检查你的程序,判断逻辑流程是否有误。

  • 銆愬揩鏉ュ府鎴憕~銆涓轰粈涔鎴戠殑C璇█绋嬪簭鍙互缂栬瘧绛夐兘閫氳繃 浣嗘槸杩愯璧锋潵涔嬪悗...
    绛旓細{ int i,j;G.vexnum=4;...// 鍏朵粬鍚岋紝鎶" return G;"鍘绘帀銆倂oid ShortestPath(){ MGraph G;... // 鍏朵粬鍚 scanf("%d",&v);InitGraph(G); // 鍔犱笂杩欎竴鍙 ...2. 鈥渇or(v=0;v<G.vexnum;++v)鈥濓紝 v淇濆瓨鐫杈撳叆鐨勫硷紝浣嗚繖閲屽張閲嶆柊璧嬪间负0.鏄笉鏄簲璇ユ槸鈥渇or(v0=0;v0<G....
  • 鐢C璇█缂栫▼绋嬪簭娌℃湁閿欒涓轰粈涔缁撴灉涓嶅
    绛旓細1锛屼繚瀛樹负c鎴朿++鏂囦欢 2锛屾牴鎹柇鐐硅皟璇曟壘鍒伴敊璇銆3锛岄噰鐢‵10鎴朏11鍗曟璋冭瘯鎵惧埌绮剧‘鐨勯敊璇銆傚叾涓璮10鏄烦杩囧嚱鏁扮洍鐢紝f11鏄繘鍏ュ嚱鏁颁綋璋冭瘯銆備竴鑸槸鍏堢敤f10锛岀‘瀹氬嚱鏁拌緭鍏ヨ緭鍑烘槸鍚姝g‘锛堜笌鑷繁鎯崇殑涓鏍凤級锛屽涓嶄竴鏍凤紝鍒欑敤f11杩涘叆鍑芥暟浣撲竴姝ヤ竴姝ヨ皟璇曘4锛屽湪璋冭瘯杩囩▼涓紝鑲畾寰楃洃瑙绋嬪簭涓殑鍙橀噺銆傚湪vc6...
  • ...鐨C璇█绋嬪簭涓轰粈涔鏈夊緢澶氱▼搴忕粡杩缂栬瘧閮芥槸姝g‘鐨,杩愯鐨勬椂鍊欏嵈鎬绘湁...
    绛旓細鍜岃缃竴鑸病浠涔堝叧绯伙紝code::blocks涔熸槸璋冪敤鏍囧噯鐨勭紪璇戝櫒杩涜缂栬瘧鐨勶紝鎻愬崌浣犻敊浜嗕綘鏈濂戒粩缁嗙湅鐪嬶紝鍙﹀锛屽嵆浣缂栬瘧姝g‘锛岃繍琛屼篃涓嶄竴瀹氳兘鎴愬姛锛屽洜涓虹紪璇戝櫒鍙兘妫鏌ヤ竴閮ㄥ垎閿欒锛岃屼笖涓昏鏄娉曢敊璇傚叧浜庝綘璇寸殑int杩欎釜闂锛岃鏀句唬鐮
  • c璇█闂鈥斺涓轰粈涔涓涓绋嬪簭鍙互閫氳繃缂栬瘧鍗存棤娉杩愯?DEV-c++缂栬瘧鍣ㄧ殑...
    绛旓細閫氳繃缂栬瘧锛鍗存棤娉閾炬帴鎴栬呰繍琛岋紝鏄洜涓烘湁璇ユ枃浠剁殑鐢虫槑锛屽嵈娌℃湁璇ョ敵鏄庣殑Lib鎴栬匘ll鎴栬呮簮鐮併傝В鍐虫柟妗堬細1.鍦―EV涓璍ink閫夐」涓粯璁ゆ坊鍔燼lloc.c 鎴栬 alloc.lib 2.鍦ㄥ伐绋嬫枃浠朵腑娣诲姞alloc.c鎴栬卆lloc.lib 3.閫夌潃鍖呭惈malloc鐨勫0鏄庢枃浠讹紝涓鑸簲璇ュ湪malloc.h涓 ...
  • 涓轰粈涔圕璇█绋嬪簭缂栬瘧姝g‘浣嗕笉鑳鎵ц?
    绛旓細杩欎釜绋嬪簭瑕佹湁main鍑芥暟锛屼綘鐨勮繖涓兘娌℃湁鎬庝箞鎵ц锛熷姞涓猰ain鍑芥暟锛岀劧鍚庡湪閲岄潰璋冪敤func杩欎釜鍑芥暟銆
  • 鍦c璇█涓,缂栫▼娌℃湁閿欒,浣嗕负浠涔灏辨槸涓嶈兘杩愯鍛?
    绛旓細浣犵殑缂栬瘧缁撴灉涓湁error锛屽氨鏄嚭閿欎簡锛屾病閫氳繃缂栬瘧 鑰屼笖缂栬瘧鍙兘妫鏌绋嬪簭鐨勮娉曟槸涓嶆槸姝g‘鐨勶紝骞涓嶈兘淇濊瘉鏁翠釜绋嬪簭灏辨槸姝g‘鐨
  • C璇█缂栧啓鐨绋嬪簭缂栬瘧鎴愬姛浣嗚繍琛屽け璐
    绛旓細printf("%s",*name); // 寰堟槑鏄炬槸杩欎釜閿欎簡锛涓轰粈涔瑕佸姞*鍙// 鏀逛负printf("%s",name); 搴旇灏卞彲浠
  • 涓轰粈涔圕璇█绋嬪簭缂栬瘧杩炴帴姝g‘鍚,鍗村脊涓嶅嚭绐楀彛,寰椾笉鍒扮粨鏋
    绛旓細鍙兘鏄綘鐨绋嬪簭鏈韩鏈夐棶棰橈紝鑰缂栬瘧绯荤粺娌℃湁妫娴嬪嚭鏉ワ紝瀵艰嚧浣犺繍琛屾槸鍑虹幇閿欒鍟
  • 鎴戠殑c璇█绋嬪簭缂栧浜浣嗘槸璋冭瘯灏卞嚭鐜拌繖涓敊璇涓轰粈涔鍛?
    绛旓細浣犲彲浠ュ埌鐩稿簲鐨勮矾寰勪笅鎵惧埌杩欎釜搴旂敤绋嬪簭銆傚洜姝ら棶棰樺彲浠ユ寜鐓т互涓嬫柟娉曡В鍐筹細鎵撳紑vc鐣岄潰 鐐瑰嚮VC鈥淭OOLS锛堝伐鍏凤級鈥濃>鈥淥ption锛堥夋嫨锛夆濃>鈥淒irectories锛堢洰褰曪級鈥濋噸鏂拌缃淓xcutable Fils銆両nclude Files銆丩ibrary Files銆丼ource Files鈥濈殑璺緞銆傚緢澶氭儏鍐靛彲鑳藉氨涓涓洏绗︾殑涓嶅悓 锛堜緥濡備綘鐨刅C瑁呭湪C锛屼絾鏄繖浜涜矾寰...
  • 璇烽棶,涓轰粈涔鎴戝湪缂栧啓C璇█绋嬪簭鐨勬椂鍊,缂栬瘧鐨勬椂鍊欐病鏈変换浣曢敊璇,鐒惰屽湪杩 ...
    绛旓細瀹冭鎵ц鏃讹紝鎵句笉鍒拌繖鏍风殑鏂囦欢鎴栨枃浠跺す銆傜紪璇戞椂锛屼綘鍙缁欎簡璺緞鍜屾枃浠跺悕锛屼笉绠℃枃浠跺湪涓嶅湪锛缂栬瘧灏辫兘閫氳繃銆傛墽琛屾椂锛岃鍘绘壘鏂囦欢锛屾墦寮鏂囦欢锛屾枃浠朵笉鍦紝娌℃硶鎵撳紑锛屽氨鍠婇敊浜嗐'F:\ 銆傘傘' --- 瑕佺敤鍙屽紩鍙凤紝鍙嶆枩鏉狅紝鐢 \\ "F:\\SoftwareEngineer\\C language\\C ..."...
  • 扩展阅读:c++入门程序代码 ... c语言没错但是运行不了 ... 入门c语言编译器 ... 流行的c语言编译器 ... 编程一般要学多久 ... 编写程序入门教程 ... 初学者c语言的软件 ... c语言编译运行灰色的 ... 大一c语言必背编程题 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网