學習內(nèi)容
一 献丑、注釋的作用
- // 單行注釋 但 不能換行
- /...../ 多行注釋 但 可換行
二 、 #include的作用
- include 宏 導入頭文件侠姑。如果系統(tǒng)已經(jīng)提供某些功能的實現(xiàn)创橄,只需要使用include將這些功能所在文件導入進來就可以了。
- < > 用來導入系統(tǒng)提供的類庫莽红。 例 : stdio.h ? stdlib.h ? math.h ? string.h
- " " 用來導入自己定義的文件妥畏。例 : calculate.h
- ? #include <stdio.h> 編譯器首先從系統(tǒng)的類庫里面去查找這個頭文件,如果沒有安吁,再到自己的文件中查找醉蚁,否則報錯。
- ? #include "stdio.h" 編譯器首先在自己的文件中去查找這個頭文件鬼店,如果沒有再到系統(tǒng)的類庫里面查找网棍,否則報錯。
三 妇智、 main函數(shù)介紹
- main函數(shù) = 代碼塊 = 完成特定功能滥玷,? 所有程序的入口點都是main函數(shù)。
- int 返回值巍棱,用來記錄當前程序的運行狀態(tài)惑畴,0: 正常結束 資源自由分配, 非0:異常結束 沒收資源航徙。
- int argc : 參數(shù)個數(shù) argument count 如贷,char* argv[ ] : 每個參數(shù)組成的字符串數(shù)組。
int main(int argc,char *argv[ ] ){
printf("%d\n",argc)杠袱;
printf("%s\n",argv[ ])泻红;
return 0;
}
輸出:
1
四 霞掺、printf函數(shù)格式類型
- printf輸出語句谊路,用來讓終端輸出數(shù)據(jù)。
- 打印常量字符串 : printf("hello world");
- 轉義字符: \n 的意識是回車換行菩彬,講當前位置移到下一行的開頭缠劝。 \r 的意思是回車,將當前位置移到本行的開頭骗灶。\t 的意思是水平制表符惨恭,將當前位置移到下一個tab位置。
int main(int argc耙旦,char *argv[ ]) {
printf("hello world\t")脱羡;
printf("%d\n",argc);
printf("%s\r",argv[0]);
getchar();
return 0;
}
輸出結果 : hello world 1
五 免都、 C語言的基本數(shù)據(jù)類型
212BC96B81580EAAA723E30768F44A28.jpg
#include <stdio.h>
#include <stdbool.h>
int main(){
int count = 0;
count = 3;
//%d
//%02d 不足兩位的用0補齊
printf("i have %02d dogs\n",count);
long size = 230;
printf("%ld\n",size);
float score = 3.1415926;
printf("%.2f\n",score);
//中文占據(jù)2個字符
//%c 字符
//%d 字符對應ASCII碼值
char choose = 'c';
printf("%c\n",choose);
printf("%d\n",choose);
六 锉罐、scanf函數(shù)的格式化輸入
- scanf輸入語句,用來向終端你輸入數(shù)據(jù)绕娘。
int a = 0脓规;
scanf("%d",&a);
printf("%d",a);
- 當用戶在終端輸入數(shù)據(jù)時,數(shù)據(jù)會被存放到緩沖流险领,scanf用于在緩沖流中找到數(shù)據(jù)將其放到指定位置侨舆。
- 放入到給定位置就是保存輸入的數(shù)據(jù),保存數(shù)據(jù)需要用到變量绢陌,我們只需要把數(shù)據(jù)送到對應變量的地址
挨下,就存儲好了該數(shù)據(jù),就可以通過該變量使用數(shù)據(jù)脐湾,所以使用&獲得變量a的地址臭笆。
int a = 0;
scanf("jack%d",&a)沥割;
printf("%d %d",a , b);
- 此時輸入的數(shù)據(jù)必須按照 ? jack+數(shù)據(jù) 的格式耗啦,才可以將數(shù)據(jù)送入到變量中凿菩。所以机杜,scanf函數(shù)中" "里面的內(nèi)容用來控制輸出格式。
int a = 0衅谷;
scanf("%d %d", &a,&b)椒拗;
printf("%d %d",a,b);
- 利用上面的輸入格式一次性輸入兩條數(shù)據(jù)
七 、變量
- 變量是程序可操作的存儲區(qū)名稱;變量的類型決定了變量的大惺纯痢在验;變量的名稱可以有下劃線,字母堵未,數(shù)字組成腋舌,它必須以字母或者下劃線開頭。簡單地說變量就是用來記錄數(shù)據(jù)的渗蟹。
- 變量的聲明 : 沒有分配內(nèi)存空間块饺,使用的時候才會分配, 如 :int a;
- 變量的定義 :立刻為我們分配內(nèi)存空間 賦初值 雌芽,如 :int a = 0授艰;
- 變量的使用 :
int num1,num2;
scanf("%d %d",&num1,num2);
printf("%d\n",num1,num2);
- bool類型的變量(需要導入stdbool.h),其值非零即真 世落,零為假淮腾。
bool status = -3;
printf("%d\n",status)屉佳;
八谷朝、 運算符
+ - * 加減乘
/ 除 取整數(shù)部分 7 / 3 = 2
% 取余數(shù)部分 7 % 3 = 1
x % 16 + 1 = 1 ... 16;
x % 51 + 50 = 50 ...100
&& 且 兩個同時成立 1>2 && 2>1;
|| 或 只要一個成立就可以1>2 || 2>1
++ 自增 a++,++a;
-- 自減
+= a += 2;
!= 1 != 2
== 判斷 a==2
= 賦值
4C5852B2B0441E71990FF90235A1DD35.jpg
float r = 3 / 2;
printf("%f\n",r);
int a = 20;
if(++a ==20){
printf("a = 20\n");
printf("a = %d\n",a);
}else{
printf("a != 20\n");
printf("a = %d\n",a);
}
printf("a = %d\n",a);
if(a==2){
printf("a = 2\n");
}
return 0;
九武花、 循環(huán) : if
- if語句的形式:C語言吧任何非0和非null的值假定為ture徘禁,把0和null假定為false。
if(){
}
if(){
}else{
}
if(){
}else if(){
}else if(){
}else{
}
*/
/*當某種條件成立 才做事情
if(條件-true非0 -false=0){
成立要做的事情
}
十髓堪、工資實戰(zhàn)
優(yōu)化前
#include <stdio.h>
int main(){
int salary = 0;//記錄工資
int pay = 0; //稅后工資
//接收輸入
printf("請輸入工資:");
scanf("%d",&salary);
//開始計算
if(salary < 5000){
pay = salary;
}else if(salary > 5000 && salary < 8000){
int tax = (salary - 5000)*0.1;
pay = salary - tax;
}else if(salary > 8000 && salary < 10000){
int tax = (salary-8000)*0.15 + 3000*0.1;
pay = salary - tax;
}else{
int tax = (salary - 10000)*0.2 + 2000*0.15 + 3000*0.1;
pay = salary - tax;
}
printf("到手工資: %d",pay);
return 0;
}
優(yōu)化后
#include <stdio.h>
int main(){
int salary = 0;//記錄工資
int tax = 0; //稅
//接收輸入
printf("請輸入工資:");
scanf("%d",&salary);
//開始計算
if(salary < 5000){
pay = salary;
}else if(salary > 5000 && salary < 8000){
int tax = (salary - 5000)*0.1;
}else if(salary > 8000 && salary < 10000){
int tax = (salary-8000)*0.15 + 3000*0.1;
}else{
int tax = (salary - 10000)*0.2 + 2000*0.15
+ 3000*0.1;
}
printf("到手工資: %d",salary - tax;);
return 0;
}
十一送朱、年齡轉換實戰(zhàn)
#include <stdio.h>
//輸入年齡 20
//your age is twenty;
int main(){
int age = 0;
//保存?zhèn)€位數(shù) 21%10 = 1
char* gewei[] = {"","one","two","three","four","five","six","seven","eight","nine"};
//保存10-19
char* temp[] = {"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"};
//保存十位
char* shiwei[] = {"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"};
printf("請輸入年齡:");
scanf("%d", &age);
char *name;//保存每次取出的字符串
if(age < 10){
//直接訪問各位數(shù)數(shù)組
name = gewei[age];
}else if(age >= 10 && age <= 19){
//獲取個位數(shù)
int index = age % 10;
name = temp[index];
} else{
//獲取個位數(shù)
int g = age % 10;
//獲取十位數(shù)
int s = age / 10;
//取出對應的單詞
int sString = shiwei[s-2];
int gString = gewei[g];
printf("your age is %s-%s\n"
,sString,gString);
//程序還未運行完畢就提前結束
return 0;
}
printf("your age is %s\n",name);
return 0;
}