#include
#define length 10 /*規定,輸出為直方圖的單詞數只能為length個*/
#define out 0
/*輸入非字母時候的狀態*/
#define in 1
/*輸入為字母時候的狀態*/
/**該函式最基本的思想是,
*定義乙個陣列用於儲存從第乙個出現的單詞到最後乙個或者規定限度為止的單詞的長度,
*定義乙個變數用於儲存最長的單詞的長度。
*依據上面兩個變數,列印出垂直直方圖。
*主要的判斷是,最長的單詞長度變數依次減一一直減到零,
*在這一過程中,依次判斷長度陣列中每個單詞與上面的自減量相比,
*當大於或等於這個變數的時候輸出『*』,當小於這個變數時,輸出『 』。
*/int main()
int maxlength;
/*用於儲存最長單詞的陣列*/
short state;
/*用於儲存輸入狀態*/
short wl;
/*用於計算字長的變數*/
int lindex;
/*用於計算陣列的下標*/
int c;
/*用於儲存當前輸入的字元*/
state = out; /*state的初始狀態為沒有輸入字母*/
wl = 0;
lindex = 0;
/*判斷當輸入的字元不為eof時,則去判斷當下的字元*/
while((c = getchar()) != eof && lindex < length)
wl++;
} else
/*當輸入狀態為in時,說明剛剛結束乙個字母的取值。儲存當前wl的長度到陣列中去,wl置0;狀態改為out*/
wl = 0;
}state = out;
if (c == '\n') }}
/*現在得到了乙個字長的陣列wlengths, 還有乙個最大長度的字母
*用著兩個變數列印直方圖。
*/for (int lenstep = maxlength; lenstep > 0; lenstep--)
else
}printf("\n");
}/*長度不為0的輸出作為直方圖的下標*/
for(int i = 0; i < length; i++)
}return 0 ;
}
C語言模組化程式設計的例子
以往寫c語言程式都是乙個檔案裡面寫個幾 十 幾百行,在練演算法的時候還可以,現在搞開發需要模組化程式設計,所謂模組化程式設計,就是指乙個程式包含多個原始檔 c 檔案和 h 檔案 每個 c 檔案可以被稱為乙個模組。1 例程的檔案結構 2 各檔案 main.c 原始碼 include include i...
經典 113道C語言題目(一)
1.輸入兩個正整數,m和n,求其最大公約數和最小公倍數。includevoid main int hcf int u,int v while r u v 0 return v int lcd int u,int v,int h 2.輸入一行字元,分別統計出其中字母 空格 數字和其他字元的個數。inc...
C語言程式設計教程(第三版)課後習題11 3
submit status web board description 現有有n個學生的資料記錄,每個記錄包括學號 姓名 三科成績。編寫乙個函式input,用來輸入乙個學生的資料記錄。編寫乙個函式print,列印乙個學生的資料記錄。在主函式呼叫這兩個函式,讀取n條記錄輸入,再按要求輸出。n 100 ...