1樓:匿名使用者
這是基本的語法啊,先翻書看看吧~不懂的再問。
2樓:水主沉浮
(2)int *pn_1=&n1, *pn_2=&n2;
(4)printf("%ld %ld\n", pch_1, pch_2);
(5)printf("%ld %ld\n", pn_1, pn_2);
(6)printf("%ld %ld\n", pd_1, pd_2);
(7)printf("%c %c\n", *pch_1, *pch_2);
(8)printf("%d %d\n", *pn_1, *pn_2);
(9)printf("%f %f\n", *pd_1, *pd_2);
(10)
*pch_1 += 32; *pch_2 += 32;
(11)
*pn_1 -= 5; *pn_2 -= 5;
(12)
*pd_1 += 10.0; *pd_2 += 10.0;
(13)
printf("%c %c\n", *pch_1, *pch_2);
(14)
printf("%d %d\n", *pn_1, *pn_2);
(15)
printf("%f %f\n", *pd_1, *pd_2);
c語言問題 求高手解答!!
3樓:匿名使用者
sortd函式系採用選擇法排序演算法將a指向的n個數從大到小排列:每次選出乙個數和後面的所有數比較,記住最大數,最後放在隊頭……
遺憾的是選擇部分有誤:if(*q>*maxp) maxp=p;
當q指向的數較大時,應該記住q指向的數:if(*q>*maxp) maxp=q;
另外,建議程式分行,有序縮排,養成良好的書寫習慣:
4樓:
把自定義函式sortd中的if(*q>*maxp) maxp=p;改成if(*q>*maxp) maxp=q;。
5樓:藍天不是藍色了
你這個for迴圈不用括號?
乙個c語言的問題,求高手解答.
6樓:匿名使用者
adt complex
p : add(a,b)
//求複數a,b的和
sub(a,b)
//求複數a,b的差
mul(a,b)
//求複數a,b的積
div(a,b)
//求複數a,b的商
equ(a,b)
//a,b是否相等
}adt complex
就這樣的格式,p的內容還可以再加。
有理數的的定義和複數的一樣,把complex改成其他名字就行了。
7樓:庚暢睦向彤
這是因為數字太大,溢位,就可能變成負數,負數明顯不滿足》9999的條件,所以第乙個判斷不成立,結果第2條剛好成立,導致認為是4位數.
求高手解答,c語言問題
8樓:很浪的碰碰車
當使用者按下某個鍵時,
1.鍵盤會檢測到這個動作,並通過鍵盤控制器把掃瞄碼(scan code)傳送到計算機;
鍵盤掃瞄碼跟具體的硬體有關的,不同廠商對同乙個鍵的掃瞄碼有可能不同。
2.計算機接收到掃瞄碼後,將其交給鍵盤驅動程式;
3.鍵盤驅動程式把這個掃瞄碼轉換為鍵盤偽程式碼;
偽程式碼與具體硬體無關,不同廠商的鍵盤,同乙個鍵的偽程式碼總是相同的。
3.然後,鍵盤驅動程式把該鍵盤操作的掃瞄碼和偽程式碼以及其它資訊傳遞給作業系統;
4.作業系統將獲得的資訊封裝在乙個鍵盤訊息中,並把該鍵盤訊息插入到訊息列隊。
5.通過windows的訊息系統,該鍵盤訊息被送到某個視窗中;
6.視窗所在的應用程式接收到訊息後,可以了解到有關鍵盤操作的資訊,然後決定作出一定的響應
37,38,39,40就是ascii碼,也就是偽程式碼。而且方向鍵值是有兩個,第乙個是有符號數-32,你第二張圖里的判斷ch==224,判斷是它的無符號數,跟-32是一樣的。第二個就是它的真實鍵值,你可以用下面的**檢視(c++)
int main()
return 0;
}至於為什麼取出的是72,75,77,80應該是直接取了掃瞄碼,我用其他程式語言測了下,取出來的只是ascii37,38,39,40。如果想那樣呼叫就重新定義一下吧。
個人理解,僅供參考。
9樓:匿名使用者
可以定義常變數啊,很標準的
const int up = 72, down = 75, left = 77, right = 80;
switch(0xff & c2)
10樓:匿名使用者
這個問題牽涉到鍵盤的掃瞄碼和windows虛擬鍵碼的概念
對xt鍵盤以及之後的相容鍵盤而言,0x48,0x4b,0x4d,0x50分別是上、左、右、下方向鍵的鍵盤掃瞄碼(在早期linux核心程式中可以看到)。該值與具體的硬體裝置相關,例如xt機鍵盤與at機鍵盤的差異就很大;
而vk_up,vk_left,vk_right,vk_down則是在windows上層應用程式中使用的虛擬鍵碼,它掩蓋了底層可能由不同硬體帶來的編碼差異,使得上層可以使用統一的鍵盤編碼
另外: 0x48 = 72, 0x4b = 75,0x4d = 77,0x50 = 80
0x25 = 37,0x26 = 38,0x27 = 39,0x28 = 40
這只是16進製制值與10進製值之間的轉換
11樓:匿名使用者
恩!其實這些數是相同的!
我現在不方便模擬!不過我認為:
你的前倆個**裡的是鍵盤上的上下左右鍵,上面兩幅圖的數值第一幅是16進製制的,第二幅是10進製的。
而你的下面倆張**是鍵盤上的w,s,a,d!第三幅是10進製的,第四幅是6進製。
12樓:仲奇正
0x代表16進製制,也就是說0x48 = 72,0x50 = 80,0x4b = 75,0x4d = 77,;
而vk_up、wk_down等等,是巨集定義,定義即為對應的數字。如果你要用的話,建議你去了解一點win32程式設計的東西,其中的鍵盤訊息有講這些。
13樓:匿名使用者
0x代表16進製制,換算成十進位制之後數字就對上0x25=37,0x48=72
14樓:magic_旭
肯定以winuser.h中定義的為準啊,0x25它是乙個十六進製制數,對應的十進位制也就是37,
c語言問題,求高手解答 啊,C語言問題,求高手解答 啊!
d a,a,point不是指標a,b 我試了一下ab都編譯不過,靠的是隱式型別轉化,意義不大 4 返回union裡面佔儲存空間最大的型別,32位vc編譯器int和long都是4位元組,short2位元組 a 執行順序 a,k b,c,k c,k d,e,k default,k 這樣你能看出來哪個是指...
c語言問題求大神解答,C語言問題求大神解答
我看了樓上的追問,說實話,不知道樓主在問什麼。我就說下if else處的思想吧。1 假設有個輸入是有一連串空格符號的,那程式就只會進入。if c c n c t state out 不會計數。2 假設我現在剛開始輸入第乙個字母。if c c n c t state out 這裡進不去了,進去了 el...
c語言問題求大神解答,C語言問題求大神解答。。
現在要求你在不打亂原來順序的基礎上插入一部分資料 刪除一部分資料,並輸出 看了你的 有乙個排序的過程 但是原題要求是不打亂原來的資料 沒有問題啊 include include int main s scanf d a t t while 1 s scanf d a t t while 1 else...
C語言問題求解答,C語言問題,求大佬解答
printf d 1000e 100d 10c b 在c裡面不能像數學一樣1000乘以e就表示成1000e而應該是1000 e,兩個數之間的運算子不能省略的,其他的應該沒錯了。include main while n o 這個是我用do while迴圈搞的,也應該能達到你要的效果。b d 這只是列印...
高分急求,c語言問題,求高手解答
include int main 11 int max int x,int y x y是形參12 三個 d,兩個位址 xy是max函式的形參,只是佔位置用的,z是max函式的私有變數,只能在本函式使用 ab是實參,傳遞給max函式處理 第4行是函式宣告,告訴編譯器有這個函式,xy可以省略,應該放到m...