如何自定義一個函數進行加法運算,代碼以下:算法
int add(int x, int y) { int z = 0; z = x + y; return z; } int main() { int a = 10; int b = 20; int sum = 0; sum = add(a, b); printf("sum = %d\n", sum); return 0; }
strcpy的使用,代碼以下:數組
int main() { char arr1[] = "bit"; char arr2[10] = "##########"; strcpy(arr2, arr1); //string copy - 字符拷貝 //strlen - string length - 字符串長度有關 printf("%s\n", arr2); return 0; }
memset 的使用,代碼以下:ide
int main() { char arr[] = "hello world"; memset(arr, '*', 5); printf("%s\n", arr); //***** world return 0; }
自定義一個函數比較兩個數的大小,代碼以下:函數
int get_max(int x, int y) { if (x < y) return y; else { return x; } } int main() { int a = 10; int b = 20; int max = get_max(a, b); printf("max = %d\n", max); max = get_max(100,500); printf("max = %d\n", max); return 0; }
使用函數交換兩個整數,代碼以下:學習
//這樣是不能轉換的 //void swap1(int x, int y) //{ // int tmp = 0; // x = tmp; // x = y; // y = tmp; //} 使用函數交換兩個整數 void swap2(int* qa, int* qb) { int tmp = 0; tmp = *qa; *qa = *qb; *qb = tmp; } int main() { int a = 10; int b = 20; printf("a = %d,b = %d\n", a, b); //swap1(a, b);//傳值調用 //調用swap2函數 swap2(&a, &b);//傳址調用 printf("a = %d,b = %d\n", a, b); return 0; }
這裏要明白傳址調用和傳值調用的區別,適用範圍指針
使用函數打印100到200之間的素數,代碼以下:code
//是素數返回1,不是返回0 int prime(int a) { //2—>a-1 int b = 0; for ( b = 2; b <= sqrt(a); b++) { if (a%b == 0) return 0; } return 1; } int main() { //打印100到200之間的素數 int i = 0; for ( i = 100; i <= 200; i++) { //判斷i是否爲素數 if (prime(i) == 1) printf("%d\n", i); } return 0; }
寫一個函數打印1000到2000年的閏年,代碼以下:字符串
int is_leap_year(int a) { if ((a % 4 == 0 && a % 100 != 0)||(a%400 == 0)) { return 1; } return 0; } int main() { //寫一個函數打印1000到2000年的閏年 int year = 0; for ( year = 1000; year <= 2000 ; year++) { if (is_leap_year(year) == 1) printf("%d\n", year); } return 0; }
其實跟以前使用殉循環大同小異,多了個調用。
函數實現二分查找,代碼以下:get
// 本質上arr是一個指針 int binary_search(int arr[], int k,int sz) { //算法的實現 int left = 0; int right = sz - 1; while (left <= right) { int mid = (left + right) / 2;//中間元素的下標 if (arr[mid]<k) { left = mid + 1; } else if (arr[mid]>k) { right = mid - 1; } else { return mid; } } return -1; } int main() { //二分查找 //在一個有序數組中查找具體的某個數 //若是找到了返回這個數的下標,找不到返回-1 // int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int k = 7; int sz = sizeof(arr) / sizeof(arr[0]);//求數組的元素個數 int ret = binary_search(arr, k,sz); if (ret == -1) { printf("找不到指定的數字\n"); } else { printf("找到了,下標是:%d\n", ret); } return 0; }
寫一個函數,每次調用這個函數,就會將num值+1博客
void add(int* p) { (*p)++; } int main() { int num = 0; add(&num); printf("num = %d\n", num);//1 add(&num); printf("num = %d\n", num);//2 add(&num); printf("num = %d\n", num);//3 return 0; }
函數的鏈式訪問
int main() { printf("%d", printf("%d", printf("%d", 43)));//4321 return 0; }
函數的聲明,調用,定義
//函數的聲明 int add(int x, int y); int main() { int a = 10; int b = 20; int sum = 0; //函數的調用 sum = add(a, b); printf("%d\n", sum); return 0; } //函數的定義 int add(int x, int y) { int z = x + y; return z; }
以上就是今天的學習內容啦,但願能堅持天天敲代碼,寫博客。2021.1.22