#include <stdio.h>
#include <stdlib.h>
#define size_t_of_array(name,type) sizeof(name) / sizeof(type)
#define One_Dimensional_array(name) size_t_of_array(name,name[0])
#define element_of_array 10
#define array_and_sizet int array[], size_t sizet
int find_max_fn(array_and_sizet);
int find_max_element_fn(array_and_sizet);
#define max(a,b) (a>b)?(a):(b)
#define setting_array_and_sizet_fn(z) z,One_Dimensional_array(z)
int main(void)
{
// const size_t element_of_array = 10;
int myarray[element_of_array];
printf("List all elements in the array\n");
for(int k=0;k<element_of_array;k++)myarray[k] = k;
for(int k
=0;k
<element_of_array
;k
++)printf("%d\n", myarray
[k
]);
printf("Define a macro and apply an iterative method to find the maximum: %d\n", find_max_fn
(setting_array_and_sizet_fn
(myarray
)));
return 0;
}
int find_max_fn(array_and_sizet)
{
int largest;
int range = sizet - 1;
for(int k=0;k<range;k++)
if(k==0)
{
largest = max(array[k],array[k+1]);
}
else
{
largest = max(largest,array[k+1]);
}
return largest;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCiNkZWZpbmUgc2l6ZV90X29mX2FycmF5KG5hbWUsdHlwZSkgc2l6ZW9mKG5hbWUpIC8gc2l6ZW9mKHR5cGUpCiNkZWZpbmUgT25lX0RpbWVuc2lvbmFsX2FycmF5KG5hbWUpIHNpemVfdF9vZl9hcnJheShuYW1lLG5hbWVbMF0pCgojZGVmaW5lIGVsZW1lbnRfb2ZfYXJyYXkgMTAKCiNkZWZpbmUgYXJyYXlfYW5kX3NpemV0IGludCBhcnJheVtdLCBzaXplX3Qgc2l6ZXQKCmludCBmaW5kX21heF9mbihhcnJheV9hbmRfc2l6ZXQpOwppbnQgZmluZF9tYXhfZWxlbWVudF9mbihhcnJheV9hbmRfc2l6ZXQpOwoKI2RlZmluZSBtYXgoYSxiKSAoYT5iKT8oYSk6KGIpCiNkZWZpbmUgc2V0dGluZ19hcnJheV9hbmRfc2l6ZXRfZm4oeikgeixPbmVfRGltZW5zaW9uYWxfYXJyYXkoeikKCmludCBtYWluKHZvaWQpCnsKLy8JY29uc3Qgc2l6ZV90IGVsZW1lbnRfb2ZfYXJyYXkgPSAxMDsKCWludCBteWFycmF5W2VsZW1lbnRfb2ZfYXJyYXldOwoJCglwcmludGYoIkxpc3QgYWxsIGVsZW1lbnRzIGluIHRoZSBhcnJheVxuIik7CgkKCWZvcihpbnQgaz0wO2s8ZWxlbWVudF9vZl9hcnJheTtrKyspbXlhcnJheVtrXSA9IGs7Cglmb3IoaW50IGs9MDtrPGVsZW1lbnRfb2ZfYXJyYXk7aysrKXByaW50ZigiJWRcbiIsIG15YXJyYXlba10pOwoJCglwcmludGYoIkRlZmluZSBhIG1hY3JvIGFuZCBhcHBseSBhbiBpdGVyYXRpdmUgbWV0aG9kIHRvIGZpbmQgdGhlIG1heGltdW06ICVkXG4iLCBmaW5kX21heF9mbihzZXR0aW5nX2FycmF5X2FuZF9zaXpldF9mbihteWFycmF5KSkpOwoJCglzeXN0ZW0oInBhdXNlIik7CglyZXR1cm4gMDsKfQppbnQgZmluZF9tYXhfZm4oYXJyYXlfYW5kX3NpemV0KQp7CglpbnQgbGFyZ2VzdDsKCWludCByYW5nZSA9IHNpemV0IC0gMTsKCWZvcihpbnQgaz0wO2s8cmFuZ2U7aysrKQoJaWYoaz09MCkKCXsKCQlsYXJnZXN0ID0gbWF4KGFycmF5W2tdLGFycmF5W2srMV0pOwoJfQoJZWxzZQoJewoJCWxhcmdlc3QgPSBtYXgobGFyZ2VzdCxhcnJheVtrKzFdKTsKCX0KCXJldHVybiBsYXJnZXN0Owp9Cgo=