學習不易,不要堅持
- 將數組A中的內容和數組B中的內容進行交換。(數組一樣大)
- 計算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。
- 編寫程序數一下 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 ;
}
運行結果: