1樓:匿名使用者
這段**是統計你輸入裡邊0~9的數字個數,輸入的字元用asc碼錶示,c的變數指代輸入的字元,那麼c >= '0'&&c <= '9'這個條件就判斷輸入的是否為數字,c-'0'是一個表示式,將會返回你所輸入字元的與字元『0』的差值,例如你輸入的值是字元'1'這個表示式為'1'-'0'兩個在asc碼中差值為1,故shuzi中下標為1的數值+1,以此來統計你輸入的各個數字的個數。
另外開頭的for迴圈採用memset只要一條語句就能完成,不需要做迴圈。
2樓:絳喵
這是字元和數字的轉換。
從char轉為int 常用這種方法。
c獲取的是字元的ascii碼,0-9的ascii碼是48到57。因此c-'0'就可以直接表示0-9
比如,1的ascii碼是49,那麼『1』-'0'=49-48=1。
3樓:
寫的對不?『0』是個char型別,對應ascii碼,0是int型別,c-『0』表示c變數的ascii碼減去字元『0』的ascii 碼,比如shuzu['9'-'0』]表示shuzi[9],++shuzi[c-'0']表示從0開始自加1賦值給陣列,這題想表示啥意思嗎?
C語言實引數組與形引數組問題,關於c語言中陣列作為函式引數的函式之間呼叫問題
這個問題是這樣的了,因為你的陣列定義的是二維大小是20 20 地址空間已經分配好了,而但你輸入的m和n的值小於20的時候,你只是先給第一維賦值,如果輸入的數字大於20,在對第二維賦值,但你輸入一些小的m和n時,其實二維陣列你還沒有賦值,他們的值還是你預設給的0啊,而當你用二維陣列去讀數的時候 a 0...
c語言陣列問題,C語言陣列問題
int main i for i 0 i 這個要問數學老師才知道。c語言陣列問題 你的 問題有以下幾個 1 min和max沒有初始化 2 對於a min 和a max 沒有做迴圈參考 如下 include main printf 最大數是 d,下標是 d,最小數是 d,下標是 d n a max m...
c語言中關於指向陣列的指標C語言中關於指向陣列的指標
char str 100 char pi str 相當於char pi pi str char ppi pi 這個地方抄錯了。應為char ppi pi 定義加 表明這是指標型別的變數 用的時候,就是用的指標,加 幹什麼。只有取指標所指變數的值,或給指標所指的變數賦值的等涉及指標所指的變數的時候,才...