各位大佬这道题怎么做啊啊啊_(:з」∠)_
这是某大佬的思路,看不懂_(:з」∠)_
不完整~
就双循环,找最大的差值,不? 能详细解释每一步的意思不,或者您写上完整的(每一步也解释一下) a-树 发表于 2018-10-21 17:52
能详细解释每一步的意思不,或者您写上完整的(每一步也解释一下)
无法还原,给我的话,我会这样做:先从左开始找最大值,然后从最大值开始,从右往左找最小值#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void generateRandomArray(int arr[], int n)
{
// srand((unsigned int)time(NULL));
srand(0);
for (int i = 0; i < n; i++)
arr = rand() % (n + 1);
}
void print(int arr[], int n)
{
for(int i = 0; i < n; i++)
printf("%d ", arr);
printf("\n");
}
int main(void)
{
int i, n = 40;
int A;
generateRandomArray(A, n);
print(A, n);
int max = A, min = 2*n;
int flag_max = 0, flag_min = 0;
for(i = 1; i < n; i++)
{
if(A >= max)
{
max = A;
flag_max = i;
}
}
for(i = flag_max; i >= 0; i--)
{
if(A <= min)
{
min = A;
flag_min = i;
}
}
printf("\nmin at A[%d] = %d, max at A[%d] = %d\n",\
flag_min, A, flag_max, A);
return 0;
}
页:
[1]