scanf 讓使用者自訂變數
scanf在C語言裡,也是很重要的一環,是用來「輸入」用的
它包含在<stdio.h>函式庫裡
與printf共用
要寫出上圖的程式,就需要用到scanf和printf
程式開始,要先撰寫函式庫和main函數
#include <stdio.h> #include <stdlib.h> main() { } |
接著要來宣告變數
從上圖可知,使用者會輸入到字串(char)、浮點數(小數float)、整數(int)
所以必須分批宣告!
注:變數名稱可自訂
在括號內撰寫
char name[80] , user[80] , password[80]; float weight , height; int number; |
char變數後面的[ ]就是這個變數可以分配到的字串容量
接著先輸出一串文字,能讓使用者知道要輸入什麼數據的文字
printf ("請輸入姓名: "); |
然後撰寫scanf程式
格式:
scanf ("輸入型態", &變數名稱); |
例如:
scanf ("%s" , &name); |
「%s」就是輸入成的字串的意思
注:%s 字串
%f 浮點數
%d 整數
依此類推撰寫「輸入」程式
完成後的程式:
#include <stdio.h> #include <stdlib.h> main() { char name[80] , user[80] , password[80]; float height , weight; int number; printf ("請輸入姓名: "); scanf ("%s" , &name); printf ("請輸入帳號: "); scanf ("%s" , &user); printf ("請輸入密碼: "); scanf ("%s" , &password); printf ("請輸入身高: "); scanf ("%f" , &height); printf ("請輸入體重: "); scanf ("%f" , &weight); printf ("請輸入你內心想到的整數數字: "); scanf ("%d" , &number); } |
接著要來輸出使用者的資料了
利用printf可以輸出變數的值
格式:
printf ("文字+型態", 變數); |
「+」不用打上去
例如:
printf("姓名: %s", name); |
依此類推
大概的程式如下:
#include<stdio.h> #include<stdlib.h> main() { char name[80] , user[80] , password[80]; float height , weight; int number ; printf ("請輸入姓名: "); scanf ("%s" , &name); printf ("請輸入帳號: "); scanf ("%s" , &user); printf ("請輸入密碼: "); scanf ("%s" , &password); printf ("請輸入身高: "); scanf ("%f" , &height); printf ("請輸入體重: "); scanf ("%f" , &weight); printf ("請輸入你內心想到的整數數字: "); scanf ("%d" , &number); printf ("你輸入的數據:n"); printf ("姓名: %sn", name); printf ("帳號: %sn", user); printf ("密碼: %sn", password); printf ("身高: %fn", height); printf ("體重: %fn", weight); printf ("心中的數字: %dn", number); } |
接下來再撰寫
system ("pause"); return 0 ; |
然後編譯並執行進行測試
結果如圖:
有沒有發現,在身高體重的地方多了好幾個零
基本上,測量體重並不會精準到這樣,所以我們改成
printf ("身高: %3.2fn", height); printf ("體重: %3.2fn", weight); |
「%3.2f」顯示3位數和小數點後兩位
再來要計算標準體重
我們的公式是
標準體重 = 身高 – 110
首先要先再宣告一個標準體重的變數
float right ; |
代入公式:
right = height - 110; |
然後輸出:
printf ("你的標準體重為: %3.2fn", right); |
綜合以上所有,最後的程式應為……
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
#include<stdio.h> #include<stdlib.h> main() { char name[80] , user[80] , password[80] ; float height , weight ; int number ; printf ("請輸入姓名: "); scanf ("%s" , &name); printf ("請輸入帳號: "); scanf ("%s" , &user); printf ("請輸入密碼: "); scanf ("%s" , &password); printf ("請輸入身高: "); scanf ("%f" , &height); printf ("請輸入體重: "); scanf ("%f" , &weight); printf ("請輸入你內心想到的整數數字: "); scanf ("%d" , &number); printf ("你輸入的數據:n"); printf ("姓名: %sn", name); printf ("帳號: %sn", user); printf ("密碼: %sn", password); printf ("身高: %3.2fn", height); printf ("體重: %3.2fn", weight); printf ("心中的數字: %dn", number); float right ; right = height - 110 ; printf ("你的標準體重為: %3.2fn", right); system ("pause"); return 0 ; } |
執行結果如圖: