# Heuristic Problem Strategy

In computer programming, a **heuristic is a problem-solving strategy** that uses trial-and-error methods to find a solution. Here’s an example of implementing a heuristic strategy in C language:

Suppose we have an array of integers and we want to find the maximum value in the array. One **heuristic strategy** to find the maximum value is to iterate over the array and keep track of the maximum value seen so far. Here’s an implementation of this **heuristic in C**:

```
#include <stdio.h>
int main() {
int arr[] = {5, 9, 3, 7, 2, 8};
int n = sizeof(arr)/sizeof(arr[0]);
int max_val = arr[0];
for(int i = 1; i < n; i++) {
if(arr[i] > max_val) {
max_val = arr[i];
}
}
printf("The maximum value in the array is %d\n", max_val);
return 0;
}
```

In this implementation, we initialize the maximum value to the first element of the array. We then iterate over the remaining elements of the array, and if we find an element that is greater than the current maximum value, we update the maximum value. Finally, we print the maximum value found.

**Note** that this **heuristic strategy** may not always find the *absolute maximum value in the array*. For example, if the array contains negative values, the maximum value found by this strategy may be negative even if there is a larger positive value in the array. However, this strategy is often useful as a quick and simple solution to many problems, and can often provide a reasonable approximation of the true solution.