A
#include <stdio.h>
#define LEN 10
int main(int argc, char** argv)
{
int i, max, index = 0;
int arr[LEN] = {7, 2, 1, 3, 6, 9, 4, 10, 5, 8};
int *p = arr;
max = arr[0];
for (i = 0; i < LEN; ++i)
if (*(p + i) > max)
{
max = *(p + i);
index = i;
}
printf("max = arr[%d] = %d\n", index, max);
return 0;
}
B
#include <stdio.h>
#define LEN 10
int main(int argc, char** argv)
{
int i, max, index = 0;
int arr[LEN] = {7, 2, 1, 3, 6, 9, 4, 10, 5, 8};
max = arr[0];
for (i = 0; i < LEN; ++i, ++arr)
if (*arr > max)
{
max = *arr;
index = i;
}
printf("max = arr[%d] = %d\n", index, max);
return 0;
}
C
#include <stdio.h>
#define LEN 10
int main(int argc, char** argv)
{
int i, max, index = 0;
int arr[LEN] = {7, 2, 1, 3, 6, 9, 4, 10, 5, 8};
int *p = arr;
max = arr[0];
for (i = 0; i < LEN; ++i)
if (p[i] > max)
{
max = p[i];
index = i;
}
printf("max = arr[%d] = %d\n", index, max);
return 0;
}
D
#include <stdio.h>
#define LEN 10
int main(int argc, char** argv)
{
int i, max, index = 0;
int arr[LEN] = {7, 2, 1, 3, 6, 9, 4, 10, 5, 8};
int *p = arr;
max = arr[0];
for (i = 0; i < LEN; ++i, ++p)
if (*p > max)
{
max = *p;
index = i;
}
printf("max = arr[%d] = %d\n", index, max);
return 0;
}
B是错的,如图数组名arr其实代表首地址,它不能进行自增运算。
2.判断语句:
A,C,D都符合给定一个数组,获取最大值及其下标并输出的要求。
以上仅供参考,如有任何疑问,可以评论回复,看到即回。
希望对题主有所帮助!可以的话,点个采纳!
B是错误的,arr 是数组的首地址, 不能改变。