您好,登錄后才能下訂單哦!
用戶登錄時(shí),需要輸入用戶名和密碼。
#include <stdio.h>
int main(void) {
// 定義變量,用來(lái)表示用戶名和密碼
char name;
int password;
// 輸入用戶名和密碼
printf("請(qǐng)輸入用戶名:");
scanf("%c", &name);
printf("請(qǐng)輸入密碼:");
scanf("%d", &password);
/*
// 打印登錄菜單
printf("---交換機(jī)后臺(tái)管理---\n");
printf("1. 登錄\n");
printf("2. 創(chuàng)建賬號(hào)\n");
printf("3. 退出\n");
*/
}
在C語(yǔ)言中,任何數(shù)據(jù)都有一個(gè)確定的類型。
C語(yǔ)言,是一種“強(qiáng)類型”語(yǔ)言。
變量是什么
變量,不是數(shù)學(xué)中的變量。
變量,是一個(gè)內(nèi)存中的一塊存儲(chǔ)空間,即一小塊內(nèi)存。
為什么要使用變量
程序在運(yùn)行時(shí),需要保存很多內(nèi)容常常變化的數(shù)據(jù)。
比如,射擊類游戲不斷變化的“分?jǐn)?shù)”。
內(nèi)存的存儲(chǔ)單位-“字節(jié)”
內(nèi)存的記本存儲(chǔ)單位,是字節(jié)。
一個(gè)字節(jié),包含8位二進(jìn)制位。
變量名的命名規(guī)范
只能包含3種字符(數(shù)字、大/小寫字母,下劃線)
不能以數(shù)字開頭(即,只能以字母或下劃線開頭)
不能和“關(guān)鍵字”同名(c語(yǔ)言內(nèi)部已經(jīng)使用的“名稱”),比如類型名int
變量名的最大長(zhǎng)度,C語(yǔ)言沒有規(guī)定。
最大長(zhǎng)度限制,取決于編譯器,一般都在32以上。
變量名,最好“顧名思義”,不用使用漢語(yǔ)拼英!
比如:用name表示姓名,用power表示功率。
變量命令的風(fēng)格:
int student_age;
int studentAge;
字符類型char
一個(gè)字節(jié)。
用來(lái)存儲(chǔ)小范圍的整數(shù)(-128 ~ 127),和“字符”(所有ASCII字符,128個(gè))。
char a = 100;
char b = ‘a(chǎn)’;
整數(shù)類型int
4個(gè)字節(jié)
用來(lái)存儲(chǔ)整數(shù),范圍:- (2的31次方) ~ 2的31次方-1
長(zhǎng)整形long
long 也就是 long int
用來(lái)存儲(chǔ)整數(shù)。
在32位系統(tǒng)上,占4個(gè)字節(jié),和int相同
在64位系統(tǒng)上,占8個(gè)字節(jié)。
長(zhǎng)長(zhǎng)整形long long
用來(lái)存儲(chǔ)整數(shù)。
8字節(jié)。
float類型(單精度浮點(diǎn)類型)
用來(lái)存儲(chǔ)帶小數(shù)部分的數(shù)據(jù)。
4個(gè)字節(jié)
表示方式:按科學(xué)記數(shù)法存儲(chǔ),也就是需要存儲(chǔ)“尾數(shù)”和“指數(shù)”
float x = 1.75E5;
//1.75E5就是1.75乘以10的5次方,只需保存尾數(shù)(1.75)和指數(shù)(5)
float y = 1.123456789;
//精度只能取值到 1.1234568, 在第7位(整數(shù)部分不算)是四舍五入后的值。
表示范圍:-3.410^38~+3.410^38 (不需記憶)
精度:最長(zhǎng)7位有效數(shù)字(是指7位10進(jìn)制位)
double類型(雙精度浮點(diǎn)類型)
用來(lái)存儲(chǔ)帶小數(shù)部分的數(shù)據(jù)。
8個(gè)字節(jié)
表示范圍:-1.710^308~1.710^308(不需記憶)
精度:最長(zhǎng)16位有效數(shù)字(是指16位10進(jìn)制位)
實(shí)例:
int x ; //定義了一個(gè)變量,變量名是x, 屬于int類型。
//注意,此時(shí)還沒有確定的值
int y = 100; //定義了一個(gè)int類型變量,變量名是y, 變量的值是100
理解:
變量保存在內(nèi)存中。
變量是一個(gè)“盒子”
變量名是這個(gè)盒子的名稱
變量的值,是盒子內(nèi)存儲(chǔ)的物品
語(yǔ)法:
變量類型 變量名;
輸入機(jī)制
空白字符有:空格,制表符(\t), 回車符
char變量的輸入
scanf("%c", &c); //輸入 100 ,實(shí)際只讀了字符1
printf("%c\n", c); //輸出 1
printf("%d\n", c); //輸出49, 字符'1'的ASCII值就是49
int變量的輸入
int a;
scanf("%d", &a); //輸入100
printf("a=%d\n", a); //輸出a=100
scanf("%d", &a); //輸入a, 不是整數(shù),輸入失??!a依舊保持原來(lái)的值
printf("a=%d\n", a); //輸出a=100
char變量使用%d輸入[ERROR]
char a, b;
scanf("%d", &a); //輸入 256 ,按4個(gè)字節(jié)存儲(chǔ),第2個(gè)字節(jié)保存到b變量中!
printf("a=%d,b=%d\n", a, b); //輸出a=0,b=1
float變量的輸入
scanf("%f", &x); //輸入3.14
printf("x=%f", x); //輸出 x=3.140000
double變量的輸入
scanf("%lf", &x); //輸入3.14
printf("x=%f", x); //輸出 x=3.140000
printf("x=%lf", x); //輸出 x=3.140000
輸入double類型變量的值, 必須使用lf 而不是f, 否則輸入失敗。
輸出double類型變量的值,則可以使用lf或者f, 沒有區(qū)別。
scanf注意:
1.當(dāng)使用%s讀取字符串串時(shí),遇到空白字符(空格、制表符,回車符)就結(jié)束
2.使用%c讀取字符時(shí),任何字符都能讀取,但只讀一個(gè)
3.使用%d,%f,%lf 讀取nt , float, double類型數(shù)據(jù)時(shí),會(huì)自動(dòng)轉(zhuǎn)換成對(duì)應(yīng)數(shù)據(jù),
但是如果遇到其他字符(比如a),就會(huì)讀取失敗
getchar
char c;
c = getchar(); //輸入一個(gè)字符
printf("c=%c\n", c);
putchar
char c = 'a';
putchar(c); //輸出1個(gè)字符, printf(“%c”, c);
getc
char c;
c = getc(stdin); //輸入一個(gè)字符, stdin表示“標(biāo)準(zhǔn)輸入設(shè)備”,默認(rèn)是鍵盤
printf("c=%c\n", c);
putc
char c = 'b';
putc(c, stdout); //輸出1個(gè)字符
1.獨(dú)立實(shí)現(xiàn)該項(xiàng)目。
2.讓用戶輸入一個(gè)圓的半徑,然后輸出這個(gè)圓的面積和周長(zhǎng)。
3.讓用戶輸入一個(gè)小寫字母,然后輸出對(duì)應(yīng)的大寫字母。
該項(xiàng)目存在的問(wèn)題:
1.用戶名,只能輸入一個(gè)字符,不能接收很長(zhǎng)的用戶名。
2.密碼很可能不是整數(shù),很可能包含字母和數(shù)字。
密碼不能隱藏,都回顯出來(lái)了,不安全。(在講循環(huán)時(shí)再解決)
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。