Hi
I have an assignment which requires me to do the following:
Required to write a function that finds an integer in an array and returns
its corresponding index. The function must be called findNumber. It must have FOUR parameters:
The first parameter is the array to be searched
The second parameter is the integer to be found within the array
The third parameter is the size of the array
The fourth parameter is an integer that indicates whether the array is sorted. A value of 1
means the array is sorted; a value of zero means the array is not sorted.
__________________________________________________ __
Since a function can only return one value(To return the position of a required integer in an array in this instance) I have tried to make use of pointers to try and return a value stating whether the array is sorted or not.
This is my code : (It compiles perfectly but it does not produce any outputs)
Code:
#include <stdio.h>
#define SIZE 10
size_t findNumber(int *sort, const int array[],int key,size_t size);
int main(void){
int a[SIZE];
size_t x;
int search_key;
size_t element;
int isSorted=0;
for (x = 0;x < SIZE; ++x){
a[x]=2*x;
}
puts("Enter the integer you are looking for:");
scanf_s("%d", &search_key);
element= findNumber(&isSorted,a,search_key,SIZE);
if (isSorted==1) {
printf("Array is sorted");
}
else{
printf("Array is not sorted");
}
printf("Your value has been found in element %d \n",element);
return 0;
}
size_t findNumber(int *sort,const int array[],int key,size_t size){
size_t n;
for (n = 9; n < SIZE; --n){
if (array[n] >= array[n-1] || array[n] <= array[n-1] ){
*sort=1; }
*sort=0;
}
for (n = 0; n < size; ++n) {
if (array[n] == key) {
return n;
}
return -1;
}
}
______________________________________
Will appreciate any help to help solve this problem