最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言統(tǒng)計(jì)輸入字符各個(gè)字母出現(xiàn)頻率的解題思路

 更新時(shí)間:2022年07月20日 11:16:40   作者:fhefh  
這篇文章主要介紹了C語言統(tǒng)計(jì)輸入字符各個(gè)字母出現(xiàn)頻率的解題思路,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文跟大家分享的是編寫一個(gè)程序,能夠計(jì)算輸入字符各個(gè)字母出現(xiàn)的頻率,具體如下

 先跟大家展示一下最終結(jié)果:

剛剛接手題目的時(shí)候,我想得很復(fù)雜,因?yàn)?6個(gè)字母中有大小寫嘛,小寫a~z,大寫A~Z

但是,無論是大寫還是小寫,字母都只有26個(gè),在此,當(dāng)輸入大寫字母的時(shí)候,我們就將其轉(zhuǎn)換為小寫就ok啦

大寫字母轉(zhuǎn)換為小寫字母,有個(gè)很方便的函數(shù)tolow(),在ctype.h中,詳情文章末。

看過前一篇文章《c語言:計(jì)算輸入字符個(gè)數(shù)》中使用數(shù)組統(tǒng)計(jì)單詞長度的方法,在統(tǒng)計(jì)字母的個(gè)數(shù)的時(shí)候,依舊可以,只不過有些"小技巧"。

大小寫轉(zhuǎn)換與計(jì)算

if(isalpha(c)) /*詳情見文末*/
{
c = tolower(c); //大寫轉(zhuǎn)換為小寫
++char_count[c-'a'];
}

通過上面的代碼將26個(gè)字母出現(xiàn)的頻率統(tǒng)計(jì)后(都存在數(shù)組中),再來打印直方圖,何為直方圖,就是那張圖拉,向上看。

由于要畫直方圖,所以用用到兩個(gè)for循環(huán)語句,通過觀察可以知道,直方圖的行數(shù)由max決定。

max如何求呢,看如下代碼:

max = 0;  //初始化

/*找出出現(xiàn)頻率最高的字母*/
  for(x = 0; x < 26; x++)
  {
    if(char_count[x] > max)
    {
      max = char_count[x];
      printf("max is %d", max);
    }
  }

現(xiàn)在max也知道了,來畫出直方圖吧:

/*打印直方圖*/
  for(; max > 0; max--)
  {
    for(x = 0; x < 26; x++)
    {
      if(char_count[x] >= max)
      {
        putchar('x');
      }
      else
        putchar('');
    }
    putchar('\n');
  }

現(xiàn)在一切都o(jì)k啦,還差一個(gè)橫坐標(biāo),不然我們咋知道每一列代表的是哪一個(gè)字母呢:

/*打印下標(biāo),即abcdefghijklml....*/
  for(x = 0; x < 26; x++)
  {
    putchar('a'+x);
  }

完整代碼:

#include <stdio.h>
 #include <ctype.h>

 main()
 {
   int x; //數(shù)組下標(biāo)變量,詳情看代碼
   int max;  //出現(xiàn)頻率最高的字母
   int char_count[26]; //26個(gè)字母出現(xiàn)字?jǐn)?shù)的統(tǒng)計(jì)
   char c;
 
 /*將數(shù)組初始化,因?yàn)槲覀冞€沒有輸入嘛,所以a~z都為0啦*/
   for( x= 0; x < 26; x++)
   {
     char_count[x] = 0;
   }
 
   while((c = getchar()) != EOF)
   {
     if(isalpha(c)) /*詳情見文末*/
     {
       c = tolower(c); //大寫轉(zhuǎn)換為小寫
       ++char_count[c-'a'];
     }
   }
 
   max = 0;  //初始化
 
 /*找出出現(xiàn)頻率最高的字母*/
   for(x = 0; x < 26; x++)
   {
     if(char_count[x] > max)
     {
       max = char_count[x];
       printf("max is %d", max);
     }
   }
 
 /*打印直方圖*/
   for(; max > 0; max--)
   {
     for(x = 0; x < 26; x++)
     {
       if(char_count[x] >= max)
       {
         putchar('x');
       }
       else
         putchar('');
     }
     putchar('\n');
   }
 /*打印下標(biāo),即abcdefghijklml....*/
   for(x = 0; x < 26; x++)
   {
     putchar('a'+x);
   }
   return 0;
 
 
 }

ps:

以上就是計(jì)算輸入字符各個(gè)字母出現(xiàn)頻率的整體解題思路,希望對大家的學(xué)習(xí)有所幫助。

相關(guān)文章

  • C語言使用mciSendString實(shí)現(xiàn)播放音樂功能

    C語言使用mciSendString實(shí)現(xiàn)播放音樂功能

    mciSendString?支持?mp3、wma、wav、mid?等多種媒體格式,使用非常簡單。這篇文章就來為大家介紹一下C語言如何使用mciSendString實(shí)現(xiàn)播放音樂功能,需要的可以參考一下
    2023-02-02
  • C++關(guān)鍵字thread_local學(xué)習(xí)筆記

    C++關(guān)鍵字thread_local學(xué)習(xí)筆記

    這篇文章主要為大家介紹了C++關(guān)鍵字thread_local學(xué)習(xí)筆記,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • 淺析C語言頭文件和庫的一些問題

    淺析C語言頭文件和庫的一些問題

    以下是對C語言中頭文件和庫的一些問題進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以參考下
    2013-07-07
  • C語言使用函數(shù)實(shí)現(xiàn)字符串部分復(fù)制問題

    C語言使用函數(shù)實(shí)現(xiàn)字符串部分復(fù)制問題

    這篇文章主要介紹了C語言使用函數(shù)實(shí)現(xiàn)字符串部分復(fù)制問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • C語言實(shí)現(xiàn)鏈表貪吃蛇

    C語言實(shí)現(xiàn)鏈表貪吃蛇

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)鏈表貪吃蛇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • C程序中唯一序列號的生成實(shí)例詳解

    C程序中唯一序列號的生成實(shí)例詳解

    這篇文章主要介紹了C程序中唯一序列號的生成實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • VScode中使用Cmake遇到的問題及其解決方法(推薦)

    VScode中使用Cmake遇到的問題及其解決方法(推薦)

    這篇文章主要介紹了VScode中使用Cmake遇到的問題及其解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • C++深入講解類與封裝的概念與使用

    C++深入講解類與封裝的概念與使用

    我們都知道C++有三大特性:封裝、繼承、多態(tài),現(xiàn)在我們來總結(jié)一下封裝的相關(guān)知識與類的概念,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-04-04
  • C語言文件操作詳情(二)

    C語言文件操作詳情(二)

    這篇文章主要介紹了C語言文件操作詳情,文章基于上一篇文章的內(nèi)容繼續(xù)展開C語言文件操作的相關(guān)詳情,需要的小伙伴可以參考一下
    2022-04-04
  • OpenCV實(shí)現(xiàn)鼠標(biāo)框選并顯示框選區(qū)域

    OpenCV實(shí)現(xiàn)鼠標(biāo)框選并顯示框選區(qū)域

    這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)鼠標(biāo)框選并顯示框選區(qū)域,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08

最新評論

和林格尔县| 天镇县| 竹溪县| 崇礼县| 宣汉县| 高清| 阳江市| 甘泉县| 邵武市| 兰考县| 曲阜市| 万宁市| 库伦旗| 舞钢市| 本溪| 师宗县| 新沂市| 甘肃省| 桃江县| 虎林市| 南靖县| 嘉兴市| 镇远县| 华安县| 桐乡市| 南汇区| 舞钢市| 克什克腾旗| 广宗县| 中宁县| 盘山县| 红安县| 中山市| 福建省| 鲁山县| 景东| 宣化县| 雷州市| 定远县| 锡林郭勒盟| 本溪|