上節中的兩個例子都用到了輸入和輸出函數scanf和 printf,這裡我們先簡單介紹一下它們的格式,以便後面使用。
scanf和 printf這兩個函數分別稱為格式輸入函數和格式輸出函數。其意義是按指定的格式輸入輸出值。因此,這兩個函數在括號中的參數都由以下兩部分組成:
- printf("sine of %lf is %lf\n",x,s);
printf("sine of %lf is %lf\n",x,s);其中%lf為格式字符,表示按雙精度浮點數處理。它在格式串中兩次現,對應了x和s兩個變量。其余字符為非格式字符則照原樣輸出在屏幕上。
【例1-3】輸入輸出函數舉例
- int max(int a,int b); /* 自定義函數說明 */
- main(){ /* 主函數 */
- int x,y,z; /* 變量說明 */
- int max(int a,int b); /* 函數說明 */
- printf("input two numbers:\n");
- scanf("%d%d",&x,&y); /* 輸入x,y值 */
- z=max(x,y); /* 調用max函數 */
- printf("maxmum=%d",z); /* 輸出 */
- }
- int max(int a,int b){ /* 定義max函數 */
- if(a>b){
- return a;
- }else{
- return b; /* 把結果返回主調函數 */
- }
- }
int max(int a,int b); /* 自定義函數說明 */ main(){ /* 主函數 */ int x,y,z; /* 變量說明 */ int max(int a,int b); /* 函數說明 */ printf("input two numbers:\n"); scanf("%d%d",&x,&y); /* 輸入x,y值 */ z=max(x,y); /* 調用max函數 */ printf("maxmum=%d",z); /* 輸出 */ } int max(int a,int b){ /* 定義max函數 */ if(a>b){ return a; }else{ return b; /* 把結果返回主調函數 */ } }
上面例中程序的功能是由用戶輸入兩個整數,程序執行後輸出其中較大的數。本程序由兩個函數組成,主函數和max 函數。函數之間是並列關系。可從主函數中調用其它函數。max 函數的功能是比較兩個數,然後把較大的數返回給主函數。max 函數是一個用戶自定義函數。因此在主函數中要給出說明(程序第三行)。可見,在程序的說明部分中,不僅可以有變量說明,還可以有函數說明。關於函數的詳細內容將在後續章節介紹。在程序的每行後用/*和*/括起來的內容為注釋部分,程序不執行注釋部分。
上例中程序的執行過程是,首先在屏幕上顯示提示串,請用戶輸入兩個數,回車後由scanf函數語句接收這兩個數送入變量x、y中,然後調用max函數,並把x、y的值傳送給max函數的參數a、b。在max函數中比較a、b的大小,把大者返回給主函數的變量z,最後在屏幕上輸出z的值。