我感觉这段C语言代码有问题,为什么编译没错啊? 这段C语言代码为什么编译没错,运行出错。
\u8fd9\u6bb5C\u8bed\u8a00\u7a0b\u5e8f\uff0c\u4e3a\u4ec0\u4e48\u7f16\u8bd1\u6ca1\u95ee\u9898\uff0c\u4f46\u8fd0\u884c\u51fa\u95ee\u9898\u4e86\uff0c\u9519\u5728\u54ea\uff1f\u56e0\u4e3a\u6ca1\u6709max\u51fd\u6570\u7684\u5b9a\u4e49\uff0c\u53ea\u6709\u58f0\u660e\uff0c\u7f16\u8bd1\u65f6\u7f16\u8bd1\u5668\u53ea\u77e5\u9053\u4f60\u8ddf\u5b83\u201c\u8bf4\u201d\u6709\u8fd9\u4e48\u4e00\u4e2a\u51fd\u6570\uff0c\u5b83\u201c\u76f8\u4fe1\u201d\u4f60\uff0c\u7f16\u8bd1\u901a\u8fc7\u4e86\u3002\u4f46\u662f\u6267\u884c\u7684\u65f6\u5019\u627e\u4e0d\u5230
while(flag++<500) \u5faa\u73af500\u6b21
\u6ee1\u8db3if((a[i]!=0)&&(a[i]+temp=0))
\u6761\u4ef6\u7684\u6709\u591a\u5c11\u6b21\uff1f\u5982\u679c\u8d85\u8fc760\u6b21\uff0c\u6bcf\u6b21\u90fdt=t+1\u7684\u8bdd\uff0c\u4f1a\u5bfc\u81f4
b[t] = i\u51fa\u73b0\u6570\u7ec4\u8d8a\u754c\u3002
2、if(mink != i) //如果a[i]元素不是r[i]~r[n-1]中的最小元素,则交换a[mink],a[i]
{
int t;
t = r[i]; r[i] = r[mink]; r[mink] = t;
}
这段代码中,因为在循环体内,你认为t被多次定义,这是不正确的,因为t是本段程序中地局部变量,本段程序进入时,定义t,但结束时,t释放了,等下一次再进入时,重新定义的t,和原来的就没有关系了,虽然名称一样,但计算机中认为是一个新变量,而且每次用完就释放,系统并不会出现问题
你可以简单验证,在本段代码后面再用t,是不可以的
这最后t被多次定义为int型,可为什么编译没错啊------这话说得不对。全文才有这一处啊,怎么是“多次定义”呢?写在循环体内的定义,它不是“多次定义的”。请看下面的程序,它始终是同一个变量。
编译的软件只要没有逻辑上的问题的话,能编译通过就可以编译的,只会检查你的语法错误,不会考虑你的代码逻辑有没有问题。
可能翻译是对的吧,你可以仔细的再看看,有时候翻译也不是万能的
每次进入代码块都是一个新的局部变量
绛旓細绗竴 scanf鏀规垚scanf_s 绗簩 澧炲姞澶存枃浠 include <stdlib.h>
绛旓細鎮ㄥソ锛屽緢楂樺叴鍥炵瓟鎮ㄧ殑闂銆傚湪C璇█涓紝鍒嗗彿浠h〃璇彞缁撴潫鐨勬爣蹇楋紝鎵浠ュ彧鏈夊綋纭畾涓涓唴瀹归渶瑕佺粨鏉熸椂锛屾墠鑳界敤鍒嗗彿銆傛偍鐨勭▼搴忎腑for璇彞鍚庨潰鍑虹幇浜嗕竴涓垎鍙凤紝浣嗘槸娌℃湁浠讳綍鐨勫唴瀹广傞偅涔堝氨琛ㄧず褰撴弧瓒杩欎釜for璇彞鏃讹紝浠涔堥兘涓嶅仛銆傛垜鎯虫偍鐨勫垵琛疯偗瀹氫笉鏄繖涓剰鎬濈殑銆傛牴鎹墠鍚庢枃鐨勭悊瑙o紝涓汉寤鸿鎮ㄦ妸杩欎釜鍦版柟鐨勫垎鍙...
绛旓細include <stdio.h>#include <stdlib.h>#include <string.h>int main(int argc,char *argv[]){int i;char n[10][3];;for(i=0;i<10;i++){scanf("%c%c",&n[i][0],&n[i][1]); /*姣忎袱涓瓧绗︿綔涓轰竴涓簩缁存暟缁*/getchar();n[i][2]='\0';}for(i=0;i<10;i++) ...
绛旓細include <stdio.h>#define N 100int main(){ float max,min,a[N]; int n,i; scanf("%d",&n); for(i=0;i<n;i++) scanf("%f",a+i); for(max=min=a[0],i=1;i<n;i++) { if(a[i]>max) max=a[i]; if(a[i]<min) min=a[i];...
绛旓細"%d",&k); for(i=0;i<6;i++) { if(a[i]<=k&&k<=a[i+1]) { for(j=5;j>=i+1;j--) a[j+1]=a[j]; a[i+1]=k; break; } } for(i=0;i<=6;i++) printf("%d ",a[i]); return 0;} 鐪嬩簡浣犵殑浠g爜锛浣犲簲璇ユ槸鎯冲疄鐜板惊搴忚〃鐨勬彃鍏ュ惂銆
绛旓細鎴戠殑 C璇█ 浠g爜 璇烽棶杩欐绋嬪簭鏈変粈涔闂?搴旇鎬庝箞鏀?缂栧啓涓涓嚱鏁版妸瀛楃涓瞫鍊掔疆鍚庢帴鍒板瓧绗︿覆t涔嬪悗銆 棰樼洰鎻忚堪缂栧啓涓涓嚱鏁皏oidStrRecCat()鎶婂瓧绗︿覆s鍊掔疆鍚庢帴鍒板瓧绗︿覆t涔嬪悗銆備富鍑芥暟璋冪敤浠ヤ笂瀛愬嚱鏁,灏嗗瓧绗︿覆abc鍊掔疆浠ュ悗鎺ュ埌瀛楃涓瞕ef涔嬪悗,杈撳嚭缁撴灉涓:defcba銆傝緭鍏ヨ緭鍏ヤ袱琛,姣忚杈撳叆... 棰樼洰鎻忚堪缂栧啓涓涓嚱鏁皏...
绛旓細b=30;sum=a+b;printf("%d\n",sum);for(i=50;i<=51;i=i+1)//;涓嶈 printf("%d\n",i);} 杩欐浠g爜鐨闂鏈1銆佹瘡琛岀粨鏉熻鏈夛紱 2銆佸畾涔夎鏀惧湪鍓嶉潰 3銆佸惊鐜悗闈笉鑳芥湁锛 4銆佹眰鍜岃鍏堟妸鍜岃祴涓0 5銆佹牸寮忎笉姝g‘ 6銆佷功鍐欓敊璇 鎴戣寰楄繖鍍忔槸涓変釜棰樼洰銆傛斁鍒颁竴璧凤紵锛燂紵
绛旓細淇敼浣嶇疆1澶勶細鎶 change(*p1,*p2);鏀逛负 change(p1,p2);鍥犱负瀹冪殑褰㈠弬瀹氫箟鐨勬槸鎸囬拡绫诲瀷锛岄渶瑕佹寚閽堝艰岄潪鎸囬拡鎵鎸囧悜鐨勫 淇敼浠g爜鍙婅繍琛岀粨鏋滄埅鍥 浠g爜杩界瓟闄勪笂
绛旓細绗簩涓猣or寰幆濡傛灉鏄痠++灏辨槸姝诲惊鐜紝濡傛灉鏀逛负j++鏄竴涓彵褰
绛旓細3锛 鍏跺疄浣犺繖涓畻娉曞緢娴垂鏃堕棿锛 鍥犱负棰樼洰涓粰浣犱簡0<=ai<=100锛岃繖涓鏉′欢锛屼綘鍙互鑰冭檻璁℃暟鎺掑簭銆傚疄鐜拌捣鏉ヤ篃姣旇緝绠鍗曘備笅闈㈢▼搴忕殑鏄椂闂存笎杩涘害鏄 n锛 鑰屾帓搴忔柟娉曟槸 n^2 include <stdio.h> int main(){ int n;int a[1000], b[100] = {0};int i;int c = 0, d;int max, min;scanf("...