c語言新手問題
1樓:
這個answer是指標,但也僅僅是個指標,程式沒有為後來的輸入分配儲存空間,況且還沒有初始化,但是卻是有值的,也就是說answer指向了乙個記憶體位址,後來的輸入會放在那裡,儘管那裡存放著其他變數或指令的資料,但會覆蓋掉原有的正確內容,gets函式在這裡所做的就是將記憶體中一段有效資料換成你所輸入的內容,幾乎肯定會出錯,需要改成。
char answer[50];
這樣就有50個位元組給你輸入,當你輸入的資料太多還是會有有效資料被覆蓋。
還有,字串比較要這樣寫。
strcmp(answer,result)==0。
2樓:傑西良
你定義的char *answer沒有為它分配記憶體,它的內容是乙個不確定的值,所以 用gets就沒有意義了。應該先加上。
answer=(char *)malloc(30);
malloc 在中,當然分配的記憶體大小可以自已找個合理點的值。
3樓:網友
因為 你定義的是指標變數( *answer,*result),而 answer和result是兩個位址,你知道ok在記憶體中的位址嗎?那隻能printf("you are a fool!")
況且位址是電腦分配,你也無法輸入啊!!
4樓:網友
你用的指標吧,把answer改下看看。
c語言入門小問題
5樓:網友
你可以這麼想:
所有陣列下標都是以0開始的,即第乙個數是a[0][0]。
我們先定a[3][4]中「3」所對的為第乙個下標,「4」為第二個。
陣列賦初始值那行所表達的意思是一共三組(第乙個下標),每組4個數(第二個下標),雖說陣列是a[3][4],但其實最後乙個數的下標是a[2][3]
以上理解的話就不難發現:「1」是陣列a[0][0],「9」是a[1][0],「10」是a[2][0]。
然後函式本身是從第乙個數開始找陣列中的最大值。先假定第乙個數是最大值(即max=a[0][0];這句)。若有比max大,則把此值賦給max,row存的是第乙個下標,colum存的是第二個下標。
最後就是輸出了。
6樓:網友
二維陣列就是幾行幾列。
a[2][1]就是第三行第二個數。
陣列的下標都是從0開始。
c語言新手求助,C語言程式設計 新手求助
因為 中用錯了輸出控制符,應該將printf f n num 中的 f改成 d才是。此程式中,已定義num為整型變數,而在後面的printf 輸出時,型別被描述為浮點數 f 這樣寫法是有問題的。c語言中,整型變數和浮點型變數在記憶體中的存放格式是不一樣的。整型變數表示的是乙個16位長的二進位制數,在...
c語言新手請教個問題
1.0就說明是double型了 1就說明是int型的 比如1 2 0 1.0 2 0.5了 要分清int型的整除和double的普通除法 這裡存在乙個int型的整除和double的普通除法的差異問題.常量數值1,2一類的被自動計算為int型,1 2將執行的是int間的整除,即1除以2,商是0,所以此...
新手求教C語言,關於printf函式的問題
ls的同學啊,不要為了湊答案,胡亂解釋啊 第一 a,5 a,a a 這個根本不是逗號表示式,甚至都不是表示式,是表列 第二,逗號表示式是有順序點的,而且計算順序是從左至右 這道題和函式呼叫約定以及順序點有關,c預設的呼叫約定是 cdecl,引數是自由向左依次入棧的 而此處只有乙個順序點,編譯器只保證...