NO.27 ---- C語言入門練習22
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
// 程式設計實現:
// 一組資料中只有一個數字出現了一次。其他所有數字都是成對出現的。
// 請找出這個數字。(使用位運算)
// 使用按位異或
int main() { int arr[11] = { 1, 1, 2, 3, 3, 4, 4, 5, 5, 6,6 }; int i = 0; printf("待查詢資料為:"); for (i = 0; i < 11; i++) { printf("%d ", arr[i]); } printf("\n"); int len = sizeof(arr) / sizeof(arr[0]); for (i = 1; i < len; i++) { arr[0] = arr[0] ^ arr[i]; // 將arr[0]與arr[i]進行異或操作,若兩數不同則將值賦給arr[0] } printf("只出現一次的數字為:%d \n", arr[0]); system("pause"); return 0; }
執行結果:
相關推薦
NO.27 ---- C語言入門練習22
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> // 程式設計實現: // 一組資料中只有一個數字出現了一次。其他所有數字都是成對出現的。 // 請找出這個數字。(使
NO.17 ---- C語言入門練習13
// 編寫一個函式 reverse_string(char * string)(遞迴實現) // 實現:將引數字串中的字元反向排列。 // 要求:不能使用C函式庫中的字串操作函式。 void reverse_string(char * string) { if (*string ==
NO.20 ---- C語言入門練習16
// 遞迴方式實現列印一個整數的每一位 void print_num(int n) { if (n > 9) { print_num(n / 10) ; } printf("%d ", n % 10); } int main() { int n; printf("請輸入一個
NO.19 ---- C語言入門練習15
// 遞迴和非遞迴分別實現求n的階乘 // 分析:n!=n*n(n-1)! // 遞迴法: int factorial(int n) { if (n == 1) return 1; return n*factorial(n - 1); } // 非遞迴法: int f
NO.28 ---- C語言入門練習23
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> // 有一個字元陣列的內容為:“student a am i”, // 請你將陣列的內容改為"i am a student
NO.31 ---- C語言入門練習24
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> 調整陣列使奇數全部都位於偶數前面。 題目: 輸入一個整數陣列,實現一個函式, 來調整該陣列中數字的順序使得陣列
NO.26 ---- C語言入門練習21
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> // 不使用(a + b) / 2這種方式,求兩個數的平均值。 int average(int x, int y)
NO.25 ---- C語言入門練習20
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> // 編寫函式: // unsigned int reverse_bit(unsigned int value); //
NO.24 ---- C語言入門練習19
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> //#define ROW 5 // //int arr[ROW][ROW]; // 在螢幕上列印楊輝三角。 // 1 /
NO.23 ---- C語言入門練習18
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> // 日本某地發生了一件謀殺案,警察通過排查確定殺人凶手必為4個 // 嫌疑犯的一個。以下為4個嫌疑犯的供詞。 //
NO.18 ---- C語言入門練習14
// 遞迴和非遞迴分別實現strlen // 遞迴法: int strlen(char str[]) { if (*str == '\0') return 0; return 1 + strlen(str + 1); } // 非遞迴法: int strlen(cha
NO.16 ---- C語言入門練習12
// 寫一個遞迴函式DigitSum(n),輸入一個非負整數,返回組成它的數字之和, // 例如,呼叫DigitSum(1729),則應該返回1 + 7 + 2 + 9,它的和是19 int DigitSum(n) { if (n > 0) { return n % 10 +
NO.15 ----C語言入門練習11
// 編寫一個函式實現n^k,使用遞迴實現 // 分析:nk=n*n(k-1) int index(int n,int k) { if (n == 0) { return 0; } else if (k == 1) { return n; } else { return n*i
NO.14————C語言入門練習10
// 遞迴和非遞迴分別實現求第n個斐波那契數 // 遞迴法: int fib(int n) { if (n <= 2) { return 1; } else { return fib(n - 1) + fib(n - 2) ; } } // 非遞迴法: int
NO.13————C語言入門練習9
實現一個函式,判斷一個數是不是素數。 素數:只能被1和它本身整除 // 判斷素數函式 void Is_prim(int n) { int i; for (i = 2; i < sqrt(n); i++) { if (n%i == 0) { printf("該數不是素數!\n
NO.12————C語言入門練習8
//實現一個函式判斷year是不是潤年。 //能被4整除但不能被100整除,或者能被400整除 //判斷閏年函式 void leap_year(int n) { if ((n % 100 != 0 && n % 4 == 0) || (n % 400 == 0)) {
NO.11————C語言入門練習7
使用函式實現兩個數的交換。 //實現倆個數交換的函式 void Swap(int* x, int* y) { *x = *x ^ *y; *y = *x ^ *y; *x = *x ^ *y; } //主函式 int main() { int a, b; printf("請輸入
NO.22 ---- C語言入門練習17
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> // 5位運動員參加了10米臺跳水比賽,有人讓他們預測比賽結果 // A選手說:B第二,我第三; // B選手說:我第
C語言 程式設計練習22
一、題目 1、編一個程式,輸入x的值,按下列公式計算並輸出y值; 2、已知數A與B,由鍵盤輸入AB的值,交換它們的值,並輸出。 3、給一個不多於5位的正整數,要求:一、求它是幾位數,二、逆序打印出各位數字。 4:利用條件運算完成此題:學習成績>=9
深入淺出數據結構C語言版(22)——排序決策樹與桶式排序
不改變 自然 只需要 都是 變種 限定 style buck oid 在(17)中我們對排序算法進行了簡單的分析,並得出了兩個結論: 1.只進行相鄰元素交換的排序算法時間復雜度為O(N2) 2.要想時間復雜度低於O(N2),算法必須進行遠距離的元素交換