這道C語言題目的意思,問一道C語言的題目。其中m 4是什麼意思?

2022-02-25 07:10:07 字數 3536 閱讀 7461

1樓:_開心豬

函式fun()的功能是找出字串s中26個字母分別出現的次數最多的字母和它出現的次數。

比如說如果s=「aaaabcde」

則輸出便是

nafter count :

letter a:4 times

也就是字串s中「a」出現的次數最多,是4次int k[26]=,n,i,max=0; char ch;/*k[26],下標代表第幾個字母,值統計該字母出現的次數,比如k[0]=4代表『a』字母出現了4次,這裡k的值都先初始化為0*/

while(*s)

s++;

這樣解釋還可以嗎?

不理解的話我再補充

2樓:匿名使用者

函式f的功能是統計gets(s)中輸入的字串中重複字元的最大值並顯示。

例如:輸入:sting 則會顯示如下:

enter a string:

sting

after count :

letter 'g' : 1 timesletter 'i' : 1 timesletter 'n' :

1 timesletter 's' : 1 timesletter 't' : 1 times因為sting沒有重複的,所以都會顯示。

再比如,輸入:chihuatao,則會顯示如下:

enter a string:

chihuatao

after count :

letter 'a' : 2 timesletter 'h' : 2 times明白了嗎?

n=ch-'a'; //如果ch = 『b』,則 n = 『b』-『a』=1

k[n]+= 1 ;//所以k[1] += 1; 即:k[1] = 1; 統計重複的個數,沒有重複,則為1,否則繼續加1;

不懂可以再問我哦,祝你順利!呵呵……

3樓:

n=ch-'a';ch指向的小寫字母與a的差值k[n]+= 1 ;小寫字母的個數,陣列位置0 對應a,與此類推max對應最大字母個數

輸出字串中26個字母的個數,及最大個數

4樓:匿名使用者

首先,看陣列k[26],這是用來儲存26個字母的次數的(因為有ch=tolower(*s),故用來儲存26個小寫字母),n=ch-'a'; k[n]+= 1 ;n是每個字母對應的下標,如下面仁兄所說,a是0,b是1...z是26。 k[n]+= 1 是用來統計每個字母出現的次數,這個字母出現一次,則執行 k[n]+= 1 一次。

至於if(max

if (k[i]==max) printf("\nletter \'%c\' : %d times\n",i+'a',k[i]);的意思是 如果k[i]對應的字母出現的次數等於max,則輸出該字母。若不等於max,則不執行,重新執行for語句。

所以最後的結果是函式輸出出現次數最多的字母。例如字串aabbbccccddddeeeeefffffggyyhhh,可以看出max=5,最後函式輸出letter 'e' : 5 times

nletter 'f' : 5 timesc語言要靠細心琢磨,認真思考,希望你能理解

5樓:匿名使用者

字母在計算機裡使用ascii碼儲存的,小寫a-z是連續的,所以用乙個小寫字母減去'a'相當於是他們的ascii碼相減,得到乙個數字,即是這個字母在26個字母表裡的位置,比如a是0,b是1...z是26

k[n]+= 1 這句話

k是乙個統計字母出現頻率的陣列,字母出現一次就在k[n]加一,就是這個意思

6樓:

這個程式的作用是統計 一段字串中(題目中81個)當中26個小寫字母分別出現的次數....k[26]存放的是26個字母分別出現的次數。n=ch-'a'; k[n]+= 1 ;意思是 乙個字元的asc碼減去a的asc碼得到的數 比如ch=c c-a=2 然後k[2]加一 即c字母出現的次數加一...

有什麼不懂可以追問

問一道c語言的題目。其中m%4是什麼意思?

7樓:匿名使用者

%在c語言中是取模的意思,這裡如m%4的意思就是m除以4得到的餘數,其取值可能為0, 1, 2, 3

8樓:匿名使用者

m對4取餘,比如5%4 =1,意思就是5除以4餘數是1

大佬們求請教這道c語言的題目怎麼寫?

9樓:匿名使用者

eof是檔案尾的意義(它實際上等於-1),在windows中,eof在輸入時表示ctrl+z這個鍵,scanf(..)!=eof就是說緩衝區已無內容時就結束(也就是結束輸入時按ctrl+z然後按回車),只需要把你**中的while(1)換成上面提示中這個while就行了

一道c語言題目

10樓:匿名使用者

這段程式的意思就是把乙個字串的第乙個字元放到最後位置。

因為要把後乙個字元(str[i+1])賦給本輪的字元(str[i])所以需要檢測後乙個字元是不是結束符(str[i+1]!=0)

如果str[i]!=0,這樣就會下標越界了。

11樓:

注意下文的語句,把str[i+1]賦給了str[i]

我覺得這和題目意思有關,它想str這個字串中的0去除,你可以自己寫個數,就知道拉

比如12345

12樓:匿名使用者

因為字串以0作為結束符,當然,你是看不到它的,str[i+1]迴圈至最後一位字元,即結束符前一位就停止,即str[i+1]!=0,此時str[i]是倒數第二個字元。str[i+1]!

=0這是判斷迴圈是否繼續的條件,不是從str[1]開始。

13樓:匿名使用者

因為ch=str[0];

這個程式本來就是要將最前乙個字母移至最後,有了上面這一句後,自然就從str[1]開始,str[i]=str[i+1];  //注意是str[i]的i從0開始,i+1從1開始,

使得str[0]=str[1],str[1]=str[2]……,就是將後面的字母前移了

最後加上第乙個字母,

最後實現了將最前乙個字母移至最後~~~

14樓:匿名使用者

真是菜鳥,不可能有越界的情況發生!

請問這道c語言題目怎麼寫?

15樓:風若遠去何人留

把字串存成陣列

排序重點在於比較

先按照7-14位比較,為了做到這一點,可以用strncpy把這8個字元複製出來然後用strcmp比較,也可以直接用strncmp進行比較

如果相等,再用strcmp進行比較

排序完輸出就好了

最簡潔的方式是寫乙個針對這種方式的比較函式,然後呼叫一下qsort就好了

一道c語言題目,一道C語言題目

include include 標頭檔案 include 標頭檔案 int main int a 111 b 100 c 111 n,m,k 0,t,l 0,s scanf d d n,m srand unsigned time null srand 就是給rand 提供種子 for int i 0...

求教!一道C語言題目,求教一道C語言的題目!

你主函式裡m肯定還是1,func函式中的靜態變數應該是8了吧。你檢視變數值的位置是什麼樣的,如果在主函式裡檢視肯定是主函式中的m,即為1,因為發生作用域覆蓋了。你是第二次進入func後設定斷點,檢視m數值的可定為8。由程式執行結果為8 此時i 3,m 3 1 4,因此返回值為8 17 此時i 3 8...

求教一道C語言的題目,求教一道C語言題目

while 1 你這裡輸入的是 d 所以輸入數字是正常進入了if 字元就進入了else 因為你if後面是加了break,所以能正常跳出while 1 這個死迴圈,而else你是沒有加上break的,所以是一直在while 1 死迴圈。因為你定義輸入的是 d的形式,也就是整形,所以你輸入字元型的時候,...