mirror of
https://github.com/theoludwig/programming-challenges.git
synced 2025-05-18 12:02:53 +02:00
feat(solutions): add single-number/c/function
This commit is contained in:
3
challenges/single-number/solutions/c/function/README.md
Normal file
3
challenges/single-number/solutions/c/function/README.md
Normal file
@ -0,0 +1,3 @@
|
||||
# single-number/c/function
|
||||
|
||||
Created by [@theoludwig](https://github.com/theoludwig) on 21 August 2023.
|
25
challenges/single-number/solutions/c/function/solution.c
Normal file
25
challenges/single-number/solutions/c/function/solution.c
Normal file
@ -0,0 +1,25 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int single_number(int* numbers, size_t numbers_size) {
|
||||
int result = numbers[0];
|
||||
for (size_t index = 1; index < numbers_size; index++) {
|
||||
result = result ^ numbers[index];
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
int main() {
|
||||
size_t numbers_size = 0;
|
||||
int number;
|
||||
int* numbers = malloc(sizeof(int));
|
||||
do {
|
||||
scanf("%d", &number);
|
||||
numbers = realloc(numbers, sizeof(int) * (numbers_size + 1));
|
||||
numbers[numbers_size] = number;
|
||||
numbers_size++;
|
||||
} while (fgetc(stdin) != EOF);
|
||||
printf("%d\n", single_number(numbers, numbers_size));
|
||||
free(numbers);
|
||||
return EXIT_SUCCESS;
|
||||
}
|
Reference in New Issue
Block a user