1樓:匿名使用者
哈哈,你剛學c吧~
等你學過作業系統就知道函式(包括main函式)裡不能定義太大的陣列的,所以那個int bin[100000000];要放在main函式的外面,定義成乙個全域性陣列。
另外上面那位老兄說的也不錯,不知道你的編譯器是按什麼編譯選項編譯的,如果很嚴格的話是不允許在for迴圈中定義變數,必須在main函式的開頭把所有變數的定義都寫完。
自己動手試一試吧~
2樓:匿名使用者
#include
int main()
for(j=i-1;j>=0;j--)
printf("%d",bin[j]);
printf(""return 0;}你的順序錯了 for括號裡面是不能定義的。
還有bin陣列申請超標了。
3樓:匿名使用者
重新建立乙個檔案,把**複製過去。連線問題一般不是**錯誤,你在編譯時沒問題吧,只要編譯時(即build)沒錯誤,就沒問題,按上面我說的就應該能解決。
4樓:匿名使用者
int bin[1000];/b的記憶體申請超標了。
c語言問題,求大佬解答
5樓:細雨在微笑
【示例**如下,用 中文c 編譯】
#定義 最大輸入個數 10000
整數型別 甲,個數=0, 輸入數[最大輸入個數],統計=0;
小數型別 和=0,平均值;
重複直到 甲 等於 0;
圖形輸出詞語(「輸入的正整數個數為:」)
圖形輸出整數(個數,10);圖形換行();
平均值 = 和 除 個數;
圖形輸出詞語(「輸入正整數的平均值為:」)圖形輸出小數(平均值);圖形換行();
步進迴圈(甲=0;甲《個數;甲++ 如果( 輸入數[甲] >平均值 ) 統計++;
圖形輸出詞語(「大於平均值的正整數個數為:」)圖形輸出整數(統計,10);圖形換行();
執行 結果如下圖】
乙個c語言問題,求大佬解答?
6樓:網友
乙個c語言問題,求大佬解答?
問題:c語言中如何實現多型?
答案:c語言不具有內建的多型特性,但可以通過函式指標來實現。例如在乙個函式中宣告乙個指向不同子函式的指標變數, 在執行時動態地將其改變成相應的子函式即可實現多型。
c語言基礎問題,求大佬求解
7樓:匿名使用者
第乙個程式裡,y--表示先減一,然後再在y%3中使用y,所以y的值為9,所以最終結果為741。第二個程式中,k++表示先使用,然後再加一,所以k的值為3,而--k表示先減一,然後再使用,所以最終結果為2。
8樓:匿名使用者
表示式y%3僅僅是將y對3取餘,沒有改變變數y的值
寫成y=y%3才會改變y的值
求高手解答,c語言問題
9樓:很浪的碰碰車
當使用者按下某個鍵時,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。如果想那樣呼叫就重新定義一下吧。
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_旭
肯定以中定義的為準啊,0x25它是乙個十六進位製數,對應的十進位制也就是37,
c語言問題,求大神解決,謝謝拉。。我是小白,解釋下原因
15樓:匿名使用者
x<<=3:把x的二進位制位向左移動3位。
因為x=1,所以。
x的二進位制為:0000 0001
向左移動3位後為:0000 1000
0000 1000轉為10進製位:2^3 = 8所以,選:d
c語言問題,大家幫個忙謝謝
16樓:匿名使用者
根據數字大小判斷是幾位數。
如果輸入的是 0,則是 1 位數,正序、逆序都為 0。
如果不是0,可以根據該數是幾位數進行迴圈輸出。這裡提供了一種擴充套件性較強的演算法,可以參考。
**中,k = 1000 表示當該數是 4 位數,然後通過迴圈來縮減 k 的值,從而從高到低輸出每一位的數字(正序)。
逆序的演算法相對正序簡單點,先通過 % 10 取出最低位,再通過 / 10刪除最低位,迴圈就可以把每一位數字都輸出來。
測試**。測試結果。
#include
int main()
int n, k = 1000, len = 4;
scanf("%d", n);
判斷它是幾位數。
if (n < 10) len = 1;
else if (n < 100) len = 2;
else if (n < 1000) len = 3;
printf("%d", len); 輸出是幾位數。
如果輸入0
if (n ==0) printf("%d%d", n, n);
elsewhile (k) /正序輸出它的各個資料位。
if (n / k) printf("%d ",n / k % 10);
k /=10;
printf(""
while (n) /逆序輸出它的各個資料位。
printf("%d ",n % 10);
n /=10;
return 0;
17樓:二到正無窮的梨
定義乙個長整型,n/1%10個位 n/10%10十位 取值以此類推然後你可以新增迴圈巢狀條件來判斷,從萬位開始,取值不為0時確認位數。
剩下的輸出不用說了。
c語言方面的問題,求大神解答
18樓:小黑哎啊
1,(1),(0)/*0讀作非零,非零即為真,c語言1就代表真;字元'a'ascii碼65,!65==!真,非真即是假,!'a'==0 */
2,(1),(0)/*5是非0,3是非0,&&運算後還是非0(真)==1;78非0與0,&&運算 ==0;*/
3,(1),(0)/*5>0為真(1),4>2為真(1),&運算後還==1;字元'a'ascii碼為65,65-65==0,0||0==0;*/
4,(1),(0)/*5>10為假(0),5<8為真(1),1||0==1;5<0為假(0),5>8為假(0),0||0==0; *
5,(1),(0)/*0==1,1||0==1;5>0為真(1),!1==0;
第二個表,表示式的值;
幫忙看一下這個c 程序,幫忙看一下這個c 程式
include class complex void display private double real,imag complex complex complex complex double r void complex int main ok大功告成 好累 幫你指正一下吧,你在把2.5和c1...
c語言的小題目求大神幫忙看一下,C語言的乙個小題目,求大神幫忙看一下
浮點數輸出的時候 預設都是四捨五入的 準確的說 有的編譯器是四捨五入 有的編譯器是四捨六入無成雙 求大神幫忙看一下一道c語言的題 定義了void printx 裡面又有乙個 printx c 16 不說邏輯問題,首先引數就不對 然後寫了這個函式 主函式裡根本沒有用到 求大神幫忙看一下這段c語言 哪有...
幫忙翻一下一下這段C語言 謝謝
include extern char txbuf 30 外部變數宣告,下同。void delay uint n 延時函式,多次迴圈,計算了5 n次,uint為無符號int型資料 大家幫忙翻譯一下 謝謝了 這是c語言的一段指令 不知道你想問什麼?這是乙個sdk程式的主函式開頭部分。幫忙詳細的分析一下...