标签:
#include <stdio.h> #include <stdlib.h> #include <malloc.h> /* 有101个整数, 其中有50个数出现了两次, 1个数出现了一次, 找出出现了一次的那个数。 */ /* 思路: 出现两次的数进行异或为0, 故将整个数组的数进行异或, 则得到此只出现一次的那个数 */ int isOdd(int num); int getOne(int *arr, int length); int main(){ int number = 0; //整数个数 scanf("%d",&number); if (!isOdd(number)) //判断是否是奇数 printf("Please input an odd number.\n"); else{ int * numbers = (int*)malloc(number * sizeof(int)); //存储这number个整数 printf("Please input %d number: \n",number); int tmp; for (int i = 0; i < number; ++i){ scanf("%d",&tmp); numbers[i] = tmp; } printf("%d\n",getOne(numbers,number)); } system("pause"); return 0; } int isOdd(int num){ if (num % 2 == 0) return 0; else return 1; } int getOne(int *arr, int length){ int num = 0; for (int i = 0; i < length; ++i) num ^= arr[i]; return num; }
标签:
原文地址:http://www.cnblogs.com/mutaohengheng/p/5104728.html