1. 程式人生 > >C入門【三】

C入門【三】

本頁為C入門【二】題型續篇主要補充部分個人認為經典題型

1. 將陣列A中的內容和陣列B中的內容進行交換。(陣列一樣大)

此題為之前交換瓶子題 提升版 難度不大 沒有太大的技術難點主要是要用來測試交換瓶子以陣列形式

int change(){
	//. 將陣列A中的內容和陣列B中的內容進行交換。(陣列一樣大) 
	int i, len;
	int a[10];
	int b[10];
	int temp;
	for (i = 0; i <= 9; i++){
		a[i] = random(100);
		b[i] = random(100);
		//初始化隨機兩個陣列
	}
	len =
sizeof(a) / sizeof(a[0]); printf("變化之前||||||||||\n"); printf("陣列A:"); for (i = 0; i <= 9; i++){ printf("%d,", a[i]); } printf("\n"); printf("陣列B:"); for (i = 0; i <= 9; i++){ printf("%d,", b[i]); } printf("\n變化之前||||||"); for (i = 0; i <= len; i++){ temp = a[i]; a[i] = b[i];
b[i] = temp; } printf("\n"); printf("變化之後||||||||||\n"); printf("陣列A:"); for (i = 0; i <= 9; i++){ printf("%d,", a[i]); } printf("\n"); printf("陣列B:"); for (i = 0; i <= 9; i++){ printf("%d,", b[i]); } printf("\n變化之後||||||");//. 將陣列A中的內容和陣列B中的內容進行交換。(陣列一樣大) int i, len; int a[10]
; int b[10]; int temp; for (i = 0; i <= 9; i++){ a[i] = random(100); b[i] = random(100); //初始化隨機兩個陣列 } len = sizeof(a) / sizeof(a[0]); printf("變化之前||||||||||\n"); printf("陣列A:"); for (i = 0; i <= 9; i++){ printf("%d,", a[i]); } printf("\n"); printf("陣列B:"); for (i = 0; i <= 9; i++){ printf("%d,", b[i]); } printf("\n變化之前||||||"); for (i = 0; i <= len; i++){ //陣列變化交換 temp = a[i]; a[i] = b[i]; b[i] = temp; } printf("\n"); printf("變化之後||||||||||\n"); printf("陣列A:"); for (i = 0; i <= 9; i++){ printf("%d,", a[i]); } printf("\n"); printf("陣列B:"); for (i = 0; i <= 9; i++){ printf("%d,", b[i]); } printf("\n變化之後||||||"); return 0; }

2. 計算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。

此題難點在於 陣列型別 部分易錯點在於初始化過程中int 導致後續在計算中結果為0無法達到預期目標。 %.2f 對結果的優化 pow函式的使用

int total(){
	//計算1 / 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1 / 99 - 1 / 100 的值。
	int i;
	float total = 0;
	printf("1 / 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1 / 99 - 1 / 1001 / 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1 / 99 - 1 / 100");
	for (i = 1; i <= 100; i++){
		total += pow(pow(-1, (i + 1))*i, -1);

	}
	printf("\n%.5f", total);
}

3. 編寫程式數一下 1到 100 的所有整數中出現多少次數字9。

本體的優勢在於對篩選數字過程中 一開始只考慮((j % 10) % 9 == 0)) 而忽略 10 20 .。100也符合情況。

int j;
	int count=0;
	for (j = 1; j<= 100; j++){
		if ((j%10!=0)&&((j % 10) % 9 == 0)){
			printf("%d,  ", j);
			count++;
		}
	}
	printf("\n%d",count);

總結

經過這幾天對C入門的掌握 開始學會對之前在學習中的忽略的問題重新掌握 C入門的難點在於對For迴圈以及對迴圈條件語句的使用 這方面以加強練習為主

生命不息 奮鬥不止