- 论坛徽章:
- 0
|
我写的一个
#include<stdio.h>
#define SIZE 5
main ()
{
int max = 0; //记录最大值
int i;
int m = 0;//m用来记录出现的第一个非负数的位置
int k = 0;//k用来记录出现的第一个负数的位置
int this = 1;//this记录当前积的大小
int j = 1;//j控制k只记录第一个负数的位置
int A[SIZE] = {-1,-2,-3,-4,-5 };
for (i = 0; i < SIZE; i++)
{
if (A[i] == 0)//如果遇到0,this重新开始
{
j = 1;
m = i + 1;
this = 1;
continue;
}
if (A[i] < 0 && j)//j在这里控制k只记录第一个负数的位置
{
k = i;
j = 0;
}
this *= A[i];
max = this > max ? this : max;
}
for (i = m; i <= k; i++)
this /= A[i];
max = this > max ? this : max;
printf ("Max=%d\n", max);
} |
|