No.14 代碼練習

學習不易,不要堅持

  1. 將數組A中的內容和數組B中的內容進行交換。(數組一樣大)
  2. 計算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。
  3. 編寫程序數一下 1到 100 的所有整數中出現多少次數字9。
1.
//交換兩個數組的值
//解題思路:定義一個新的臨時變量temp,將兩個數組的每個值藉助臨時變量來交換。打印時可以寫個打印函數,這樣會使主函數的條理更清晰。
#include <stdio.h>

void Exchange_arr(int arr1[], int arr2[], int sz1, int sz2)
{
	int i = 0 ;
	int j = 0 ;

	while((i < sz1) &&(j < sz2))
	{
		int temp = arr1[i] ;
		arr1[i] = arr2[j] ;
		arr2[j] = temp ;
		i++ ;
		j++ ;
	}

}

void Print(int arr1[], int arr2[], int sz1, int sz2)
{
	int i = 0 ;
	int j = 0 ;

	for(i=0; i<sz1; i++)
	{
		printf("%3d ", arr1[i]) ;
	}
	printf("\n") ;

	for(j=0; j<sz2; j++)
	{
		printf("%3d ", arr2[j]) ;
	}
	
	printf("\n") ;
}

int main()
{
	int arr1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} ;
	int arr2[] = {11, 12, 13, 14, 15, 16, 17, 18, 19, 20} ;
	int size1 = sizeof(arr1) / sizeof(arr1[0]) ;
	int size2 = sizeof(arr2) / sizeof(arr2[0]) ;
	printf("轉換之前兩個數組分別爲:\n") ;
	Print(arr1, arr2, size1, size2) ;
	Exchange_arr(arr1, arr2, size1, size2) ;
	printf("轉換之後兩個數組分別爲:\n") ;
	Print(arr1, arr2, size1, size2) ;
	return 0 ;
}

運行結果:
在這裏插入圖片描述

2.
//計算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。
//解題思路:在Count()函數裏使用while循環對其累加,設個標誌爲flag,每次循環時都會取其相反數。具體實現見代碼
#include <stdio.h>

double Count()
{
	double flag = 1 ;
	double i = 1 ;
	double sum = 0 ;

	while(i <=100)
	{
		sum += flag *(1 / i) ;
		flag = - flag ;
		i++ ;
	}

	return sum ;
}
int main()
{
	double ret = 0 ; //用來存放計算好的值
	Count() ;
	ret = Count() ;
	printf("1 - 1/2 + 1/3 - 1/4 +...+ 1/99 - 1/100 = %lf\n", ret) ;
	return 0 ;
}

運行結果:
在這裏插入圖片描述

3.
//編寫程序數一下 1到 100 的所有整數中出現多少次數字9。
#include <stdio.h>

int Count()
{
	int i = 1 ;
	int count = 0 ;

	for(i=1; i<=100; i++)
	{

		if(9 == i % 10)
		{
			count++;
		}

		if(9 == i / 10)
		{
			count++;
		}

	}
	return count ;
}

int main()
{
	int count = 0 ; //用來計數
	Count() ;
	count = Count() ;
	printf("1~100之間一共有 %d 個'9'\n", count) ;
	return 0 ;
}

運行結果:
在這裏插入圖片描述

學習不易,需要堅持

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章