天天看點

C語言入門(簡單介紹與計算)1.程式的執行2.第一個C程式3.做簡單計算4.浮點數:帶小數點的數值5.資料類型6.表達式7.計算時間差8.運算符優先級8.交換變量9.複合指派10.逆序數

  • 1.程式的執行
  • 2.第一個C程式
  • 3.做簡單計算
    •  找零錢
    • 兩整數相加
    • 找零錢(改)
    • 身高轉換
    • 求兩數平均數
  • 4.浮點數:帶小數點的數值
  • 5.資料類型
  • 6.表達式
  • 7.計算時間差
  • 8.運算符優先級
  • 8.交換變量
  • 9.複合指派
  • 10.逆序數

1.程式的執行

  1. 解釋:借助一個程式,那個程式能試圖了解你的程式,然後按照你的要求執行(解釋型語言有特殊的計算能力)。
  2. 編譯:借助一個程式,就像一個翻譯,把你的程式翻譯成計算機真正能懂的語言(機器語言)寫的程式,然後,這個機器語言寫的程式就能直接執行(編譯型語言有确定的運算性能)。

2.第一個C程式

#include <stdio.h>	

int main()
{
	printf("Hello World!\n");
	
	return 0;
}
           

3.做簡單計算

 找零錢

//change1.c
#include <stdio.h>

int main()
{
	int price = 0;
	
	printf("請輸入金額(元)");
	scanf("%d",&price);//%d說明後面有一個整數要輸出在這個位置
	
	int change = 100 -price;
	
	printf("找您%d元\n", change);
	
	return 0;
}
           

兩整數相加

//plus.c
#include<stdio.h>

int main()
{
	int a;
	int b;
	
	printf("請輸入兩個整數:");
	scanf("%d %d",&a,&b);
	printf("%d + %d = %d\n",a,b,a+b);
	
	return 0;
}
           

找零錢(改)

//change2.c
#include <stdio.h>

int main()
{
	const int AMOUNT = 100;
	int price = 0;
	
	printf("請輸入金額(元)");
	scanf("%d",&price);
	
	int change = AMOUNT -price;
	
	printf("找您%d元\n", change);
	
	return 0;
}
           

身高轉換

//height.c
#include <stdio.h>

int main()
{
	printf("請分别輸入身高的英尺和英寸,"
		"如輸入\"5 7\"表示5英尺7英寸:");

	double foot;
	double inch;
	//浮點數:帶小數點的數值(非整數)
	//double:雙精度浮點數; float:單精度浮點數 
	
	scanf("%lf %lf", &foot, &inch);
	//輸入double 用%lf 

	printf("身高是%f米。\n", 
		((foot + inch / 12) * 0.3048));

	return 0;
}
           

求兩數平均數

#include<stdio.h>
int main()
{
	int a;
	int b;
	scanf("%d %d", &a, &b);
	
	double average = ( a + b ) / 2.0;
	
	printf("%d和%d的平均值 = %f\n", a, b, average);
	
	return 0;
}
           

4.浮點數:帶小數點的數值

  當浮點數和整數放到一起運算時,C會将整數轉換成浮點數,然後進行浮點數的運算。

  int→double 改為浮點數變量

  double:雙精度浮點數 float:單精度浮點數

5.資料類型

整數 浮點數
int double
printf("%d", …) printf("%f", …)
scanf(“d”, …) scanf(“f”, …)

6.表達式

  一個表達式是一系列運算符和算子的組合,用來計算一個值。

    運算符:指進行運算的動作,如“+”,“-”。

    算子:指參與運算的值,這個值可能是常數,也可能是變量,還可能是一個方法的傳回值。

  eg: Value = ( min / 2 ) * lastValue;    count = count +1;

7.計算時間差

#include<stdio.h>
int main()
{
	int hour1, minute1;
	int hour2, minute2;
	
	scanf("%d %d", &hour1, &minute1);
	scanf("%d %d", &hour2, &minute2);
	
	int t1 = hour1 * 60 + minute1;
	int t2 = hour2 * 60 + minute2;
	int t = t2 - t1;
	printf("第一次輸入的時間為%d時%d分, 第二次輸入的時間為%d時%d分, 時間差是%d小時%d分鐘", 
	hour1, minute1, hour2, minute2, t/60, t%60 );
	
	return 0;
}
           

8.運算符優先級

優先級 運算符 運算 結合關系 舉例
1 + 單目不變 右→左 a*+b
1 _ 單目取負 右→左 a*-b
2 * 左→右 a*b
2 / 左→右 a/b
2 % 取餘 左→右 a%b
3 + 左→右 a+b
3 _ 左→右 a-b
4 = 指派 右→左 a=b

8.交換變量

#include<stdio.h>
int main()
{
	int a = 5;
	int b = 6;
	int t;
	t = a;
	a = b;
	b = t;
	printf("a = %d, b = %d", a, b);
	return 0;
}
           

9.複合指派

  5個算術運算符+ - * / %可以和指派運算符 “=” 結合形成複合指派運算符:“+=” “-=” “*=” “/=” “%=”

  • total += 5;
  • total /= 12+6;

  特殊運算符:“++”遞增; “–”遞減;

  • count ++;
  • count += 1;//++,–放在變量前為字首形式,放在變量後為字尾形式

  a++的值是a+1以前的值;++a的值是a+1以後的值;

#include<stdio.h>
int main()
{
	int a;
	a =10;
	printf("a++ = %d\n", a++);/* a++ = 10 */
	printf("a = %d\n", a);/* a = 11 */
	printf("++a + %d\n", ++a);/* ++a = 12*/
	printf("a = %d\n", a);/* a = 12 */
	
	return 0;
}
           

10.逆序數

  程式每次讀入一個正3位數,然後輸出按位逆序的數字。注意:當輸入的數字含有結尾的0時,輸出不帶有前導的0(700→7)

#include<stdio.h>
int main(int argc, char*argv)
{
	int i =0;
	scanf("%d", &i);
	printf("%d\n", (i%10)*100 + (i%100/10)*10 + i/100);

	
	return 0;
}
           

  PS:這是我在學習MOOC翁恺老師C語言入門課程後做的筆記,單純的新人記錄。

繼續閱讀