目錄
1. 寫一個函數可以判斷一個數是不是素數。(素數只能被1或其本身整除的數)
2. 一個函數判斷一年是不是閏年。
3.寫一個函數,實現一個整形有序數組的二分查找。
4. 寫一個函數,每調用一次這個函數,使得num每次增加1 。
1. 寫一個函數可以判斷一個數是不是素數。(素數只能被1或其本身整除的數)
//1. 寫一個函數可以判斷一個數是不是素數。(素數只能被1或其本身整除的數)
//打印100-200之間的素數
int main()
{int i = 0;int count = 0;for ( i = 100; i <=200; i++){//判斷i是否為素數//判斷7.就拿2~i-1之間的數字去試除iint flag = 1;//flag是1,表示是素數int j = 0;for ( j = 2; j <= i-1; j++){if (i % j == 0){flag = 0;break;}}if (flag==1){count++;printf("%d ", i);}}printf("\ncount = %d\n", count);return 0;
}
m=a*b;
16=2*8=4*4
a和b中一定有一個數字是<=sqrt(m)
#include<math.h>
//sqrt是數學庫函數
//開平方
//頭文件math.h
int main()
{int i = 0;int count = 0;for ( i = 101; i <=200; i+=2){//判斷i是否為素數//判斷7.就拿2~i-1之間的數字去試除iint flag = 1;//flag是1,表示是素數int j = 0;for ( j = 2; j <= sqrt(i); j++){if (i % j == 0){flag = 0;break;}}if (flag==1){count++;printf("%d ", i);}}printf("\ncount = %d\n", count);return 0;
}
//1. 寫一個函數可以判斷一個數是不是素數。//是素數返回1
//不是素數返回0
int is_prime(int n)
{int j = 0;for ( j = 2; j <= sqrt(n); j++){if (n % j == 0){return 0;}}return 1;
}
int main()
{int i = 0;int count = 0;for (i = 101; i <= 200; i += 2){if (is_prime(i)){printf("%d ", i);count++;}}printf("\ncount = %d\n", count);return 0;
}
2. 一個函數判斷一年是不是閏年。
int main()
{int i = 0;for (i = 1000; i <= 2000; i++){if ((i % 4 == 0 && i % 100 != 0) || (i % 400 == 0)){printf("%d ", i);}}return 0;
}
//一個函數判斷一年是不是閏年。//是閏年返回1,非閏年返回0
int is_leap_year(int y)
{if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0))return 1;elsereturn 0;
}
int main()
{int i = 0;for (i = 1000; i <= 2000; i++){//判斷i是不是閏年if (is_leap_year(i)){printf("%d ", i);}}return 0;
}
3.寫一個函數,實現一個整形有序數組的二分查找。
//寫一個函數,實現一個整形有序數組的二分查找。
int binary_search(int arr[],int k,int sz)
{int left = 0;int right = sz-1;while (left<=right){int mid = left + (right - left) / 2;if (arr[mid] < k){left = mid + 1;}else if (arr[mid] > k){right = mid - 1;}else{return mid;//找到了返回下標}}return -1;//找不到
}
int main()
{int arr[] = { 1,2,3,4,5,6,7,8,9,10 };int k = 7;int sz = sizeof(arr) / sizeof(arr[0]);//找到了,返回下標//找不到,返回-1int ret = binary_search(arr,k,sz);if (ret==-1){printf("找不到\n");}else{printf("找到了,下標是:%d\n", ret);}return 0;
}
形式參數和實際參數的名字可以相同,也可以不同。
數組傳參實際上傳遞的是數組首元素的地址,而不是整個數組,所以在函數內部計算一個函數參數部分的數組的元素個數的不靠譜的。
int binary_search(int arr[],int k,int sz)//形參arr看上去是數組,本質是指針變量。
bool 表示真,假
是1個字節。true - 1 false - 0。
也可以直接返回0 1。
bool類型的頭文件stdbool.h。
4. 寫一個函數,每調用一次這個函數,使得num每次增加1 。
//. 寫一個函數,每調用一次這個函數,使得num每次增加1 。void Add(int* p)
{(*p)++;
}
int main()
{int num = 0;Add(&num);printf("%d\n", num);Add(&num);printf("%d\n", num);Add(&num);printf("%d\n", num);return 0;
}
int Add(int n)
{return n + 1;
}
int main()
{int num = 0;num=Add(num);printf("%d\n", num);num=Add(num);printf("%d\n", num);num=Add(num);printf("%d\n", num);return 0;
}