C中如何計算漢字的數量?幫我改一下程式

2021-05-22 13:41:07 字數 2597 閱讀 5627

1樓:匿名使用者

//主要是因為,漢字都是兩個位元組

//包括標點符號也都是兩個位元組的,所以if(*p==',')其實是錯誤的!

//在**裡做了修改,測試通過,如果有疑問,歡迎交流#include

char inter_lib[7][3] = ;

int check_inter(char*tar)return false;

}void main()

//如果遇到以上這些標點符號,那麼k++(因為下一步要減去這些符號的數量才是漢字的數量)。

g=cur_idx/2-k; //注意這裡除2printf("漢字數量%d\n",g);

printf("press ank key and enter to continue\n");

getchar();}

2樓:空雪夢見

||||

|int g,s,k;

->int k = 0;

if (*p==','||*p=='。'||*p=='?'||*p=='!'||*p=='」'||*p=='「'||*p==':')

k++;

->if ((unsigned char)*p>=0x81 && (unsigned char)*p <= 0xfe)

++k, ++p;

g和s不用了

3樓:劉文正粉絲

k你沒有賦初值, 另外.漢字是佔2位元組.

請問在c++中怎樣編寫一段程式來統計文字檔案中的漢字個數(當檔案中漢字、數字、字母相互混雜時)謝謝!

4樓:耀宇星鋒

ascll有128個,unicode字符集包括世界上多種語言的基本字元,同時ascll碼字元剛好是其前128個,int(ch)表示將ch對應的字元轉換為整型,如果int(ch)>127,則表示其是unicode中128為以後的字元,這樣就能大概的統計檔案中的漢字數。

5樓:匿名使用者

gb碼裡一個漢字由兩個位元組組成 並且第一個位元組 >=128 所以你只要找到 一個位元組 >=128 那第二個位元組和這個位元組組成一個漢字,第二個位元組的範圍沒關係

6樓:匿名使用者

你的那段程式會出錯,如果使用unicode編碼漢字,比如utf8,有的漢字3個位元組,有的2個位元組..如果用gbk,gb2312編碼漢字都是雙位元組..你那個明顯智慧識別gb的..

遇見utf8就死翹翹了...127之前的是ascii碼.比127大,就是漢字了..

當然,這是在gb裡....最好的辦法是用現成的庫..icovn什麼的..

防止出錯..

7樓:匿名使用者

對不起,我不會c語言,所以不能幫你解答。

關於c++的一個簡單程式,請高手幫我修改一下!

8樓:匿名使用者

/*count = 59283, e = 2.07566**ress any key to continue*/#include

#include

#include

void sort(int a,int n)if(k != i) }}

int main ()

}e = 1.0 * count/(13*13*13*13);

printf("count = %d, e = %lf\n",count,e);

return 0;}

9樓:匿名使用者

#include

#include/* 引用qsort函式 */

/* qsort函式中的比較函式,適用於整型 int 升序 */

int cmp(const void *a,const void *b)

int main()}}

return 0;

}執行結果:

count=59103 e=2.069360

以上按你原來的思路,對所有可能的牌面組合排序和計算張數,得出概率即期望值。

說實話這種死算的方法有點無趣,前面 xoaxa 給出的隨機模擬方法更有意思。

你之前死迴圈,原因應該是把a[0]~a[3]做為迴圈變數,然後又在迴圈裡排序,還是升序!如果排序正常,最外層迴圈的a[0]會不斷被改回1,永遠無法結束。

排序這部分

for(k=j+1;k<4;k++)

if(a[k]

應該是少了一組{},陣列a裡面的值直接就亂了。

還有這段

while(s<13)

}第一,s 沒有賦初值 0 , 數值未知,有可能進不了迴圈;第二,進了迴圈,如果遇到這種情況,a[0]~a[3] 4個數的總和還小於13,就會再次進入for迴圈(這種情況第一次進迴圈就會碰到,此時a[0]~a[3]都是1,總和才4!結果就是count值錯誤)。

10樓:小懶喵

稍等,我看看

你那個e是起什麼作用的呀

11樓:it孤鶩

你的**中間搞個選擇排序幹嘛?不懂你**幹嘛

c中,53和53是如何計算的,他們的結果一樣麼

5 3 2,5 3 2。既然 是取餘除,那剩下的餘數肯定與被除數同符號,否則就太不可思議了 求餘符號跟正負沒有關係。n m的定義是 n k m p,n m k p是整數。k n m 方括號的含義是不大於n m的最大整數 5 1 3 2 此時,k n m 5 3 1 餘數p 2 5 1 3 2 此時,...

c中如何計算任何正整數的各位數字之和

解題思路 取得一個正整數各位數字之和,首先就是要分離出各位上的數字。可以通過取餘運算子 和除號 來完成,具體的思路如下 比如要求123這個整數各位數字的和。第一步是先將123除以10取餘數,得到3 第二步是把123除10取整得到12,然後再把12除10取餘得到2 第三步是把12除10取整得到1,然後...

C中如何控制某一程式的程序,C 如何實現使用一個winfrom程式來控制另一個程式的開始和結束?

絕對原創!禁止剽竊!bat版本 rem loop echo off tasklist c 程序列表.txt find i a.exe c 程序列表.txt if errorlevel 1 goto r else goto n nfind i b.exe c 程序列表.txt if errorleve...