【新手C語言】2.基礎知識與輸入輸出
阿新 • • 發佈:2021-09-16
2.基礎知識與輸入輸出
運算
加減乘除和小學數學沒什麼兩樣。這裡主要講講新東西。
/:除,得到的a/b的整數,比如5\2=2
%:取餘,這傢伙得到的就是餘數了,比如5%2=1
#include <stdio.h>
int main()
{
printf("7/5=%d",7/5) //%d代表輸入“”,後面的運算。符號+-*/是加減乘除 %是取餘 ()是括號
//%取餘表示取兩個數相除之後的餘數,且只會顯示餘數
; return 0;
}
+-/%可以和=連用,達到複合運算的目的
A+= 5 實質上是和 A= A+5是相同的,注意前者的+=之間是不能有空格的
A= B+12 實質是 A= A*(B+12)
我常用的是++和--,a++就是a+=1也就是a=a+1,減法同理
a++和++a有細微的差別
#include <stdio.h>
int main()
{
int a;
a = 10;
printf(" 這個是a++的式子 %d \n", a++);
printf("而結果是 a= %d \n",a);
printf(" 這個是++a的式子 %d \n", ++a);
printf("而結果是 a= %d \n",a);
;return 0;
}
用scanf進行輸入
scanf("%d",&price);
我們使用 scanf 把一些東西輸入,這裡表示把“”中的結果賦值給price變數,注意變數前的&要打,至於&是什麼呢,這個就等到第八週再說吧。
可以同時定義多個輸入量,每一個%d和之後所寫的變數的一一對應的
#include <stdio.h> int main() { int price=0; //定義了一個變數,名字是price,型別int,初始值是0 printf ("請輸入金額"); scanf("%d",&price); // scanf("%d %d",&a,&b); 可以同時定義多個輸入量 int change=100-price; //定義了第二個變數,並且還做了計算 //100是常量,為了方便修改的話我們也可以給常量整一個名字 const int AMOUNT= 100即可 //const為修飾符,加在int前面時代表給變數一個不變的屬性,在初始化後,該變數的值便不能修改 printf("找您%d 元",change) ;return 0 ; }
變數、賦值、初始化
變數定義的一般形式是 <><變數名稱>; 如int price
每一個變數都有一個為一的識別符號,只能又字母、數字、下劃線組成,且數字不能在第一個位置。
(識別符號,通俗的說就是變數的名字。關鍵字不能作為識別符號,比如你不能int int =1 )
所有變數必須有確定的資料型別,表示變數中可以存放什麼型別的資料,執行過程中不能改變型別
C99可以在變數使用前定義它都可以,而傳統的ANSI C只能在程式碼開頭定義變數
#include <stdio.h>
int main()
{
int price=0; //定義了一個變數,名字是price,型別int,初始值是0
//int A,B 可以同時定義兩個為A,B的變數,型別同為int
//C語言的關鍵字不能做識別符號
printf ("請輸入金額");
scanf("%d",&price);
int change=100-price;
//定義了第二個變數,並且還做了計算
printf("找您%d 元",change)
;return 0 ;
}
浮點數
我們使用整型int進行運算時,結果只會是整數
想要得到小數部分,我們需要浮點數
float:單精度浮點數,使用float時,用%f
double:雙精度浮點數,使用double時,用%lf
#include <stdio.h>
int main()
{
printf("第一行整數的測試%d ",10/3);
printf("第二行浮點數的測試%f",10.0/3);
//此時的%f與10.0一起表示出了浮點數。讓計算可以延續至小數
//當浮點數和整數放到一起運算的時候,C會把整數轉化成浮點數,然後進行浮點數的運算
;return 0;
}
//double“雙”是“雙精度浮點數”的第一個單詞,另外float(浮點)表示單精度浮點數
//使用double時,用%lf
double可表示的範圍比float更大,吃的記憶體也比它多
各個變數範圍的區別和用法之後再提
小結:一個使用輸入框和結果的例子
#include <stdio.h>
int main()
{
// 運算子是指進行運算的的動作,比如加法運算子是 +,另外=也是運算子
//運算元是指參與運算的值,可能是常數、變數、一個方法的返回值
int hour1,minute1;
int hour2,minute2;
printf("請輸入“第一個小時的時分”如一點三十為 1 30 ");
scanf(" %d %d",&hour1,&minute1);
printf("請輸入“第二個小時的時分”如三點三十為 3 30 ");
scanf(" %d %d",&hour2,&minute2);
int time1=hour1*60+minute1;
int time2=hour2*60+minute2;
int t=time2-time1;
printf("時間差是%d小時%d分鐘。",t/60,t%60);
;return 0 ;
}