#include <stdio.h> #define MAX_ROW 5
#define MAX_COL 5
#define MAX_NUM 3
int main(int argc,char *argv[])
{
int a[MAX_ROW][MAX_COL] = {{1,0,0,1,0},{1,0,1,0,0},{0,1,1,1,0},{0,1,0,0,1},{0,0,0,0,1}};
int r[MAX_ROW] = {0};
int c[MAX_COL] = {0};
int RMAX[3] = {0};
int CMAX[3] = {0};
int i,j,k,g[3],h[3]={0};
int S[5] = {0};
for (i=0;i<MAX_ROW;i++)
{
for (j=0;j<MAX_COL;j++)
{
if (a[i][j] ==1)
{
r[i]++;
} }
} for (j=0;j<MAX_COL;j++)
{
for (i=0;i<MAX_ROW;i++)
{
if (a[i][j] ==1)
c[j]++;
}
}
printf("每一行的子弹数如下,%d,%d,%d,%d,%d\n",r[0],r[1],r[2],r[3],r[4]);
printf("每一列的子弹数如下,%d,%d,%d,%d,%d\n",c[0],c[1],c[2],c[3],c[4]);
for(k=0;k<MAX_NUM;k++)
{
RMAX[k] = r[0];
g[k] = 1;
for(i=1;i<MAX_ROW;i++)
{
if (r[i]>RMAX[k])
{
RMAX[k] = r[i];
r[i] = -1; }
} for(i=1;i<MAX_ROW;i++)
{
if(r[i]==RMAX[k])
{
r[i] = -1;
g[k]++;
}
if(RMAX[k]==r[0])
{
r[0] = -1;
} }
} for(k=0;k<MAX_NUM;k++)
{
CMAX[k] = c[0];
h[k] = 1;
for(j=1;j<MAX_COL;j++)
{
if (c[j]>CMAX[k])
{
CMAX[k] = c[j];
c[j] = -1; }
} for(j=1;j<MAX_COL;j++)
{
if(c[j]==CMAX[k])
{
c[j] = -1;
h[k]++;
}
if(CMAX[k]==c[0])
{
c[0] = -1;
} }
if (CMAX[k] ==-1)
{
CMAX[k] = 0;
for(i=0;k-i>0;i++)
{
h[k] = MAX_COL-h[i];
}
break;
} }
printf("最大的子弹行数如下,%d,%d,%d,%d,%d,%d\n",RMAX[0],RMAX[1],RMAX[2],g[0],g[1],g[2]);
printf("最大的子弹列数如下,%d,%d,%d,%d,%d,%d\n",CMAX[0],CMAX[1],CMAX[2],h[0],h[1],h[2]);
// RMAX[0] = 3;g[0]=1;
// RMAX[1] = 2;g[1]=3;
// RMAX[2] = 1;g[2]=1;
CMAX[0] = 2;h[0]=5;
CMAX[1] = 0;h[1]=0;
CMAX[2] = 0;h[2]=0; if (g[0]>=3)
{
S[0] = 3*RMAX[0];
} else if(g[0]+g[1]>=3)
{
S[0] = g[0]*RMAX[0]+(3-g[0])*RMAX[1];
} else
{
S[0] = RMAX[0]+RMAX[1]+RMAX[2];
} if (h[0]>=3)
{
S[1] = 3*CMAX[0];
} else if(h[0]+h[1]>=3)
{
S[1] = h[0]*CMAX[0]+(3-h[0])*CMAX[1];
} else
{
S[1] = CMAX[0]+CMAX[1]+CMAX[2];
}
if (g[0] == 1)
{
if(h[0]==1)
{
S[2]=CMAX[0]+CMAX[1]+RMAX[0];
}
else
{
S[2]=2*CMAX[0]+RMAX[0];
}
}
else
{
if(h[0]==1)
{
S[2]=CMAX[0]+CMAX[1]+RMAX[0];
}
else
{
S[2]=2*CMAX[0]+RMAX[0];
}
} if (h[0] == 1)
{
if(g[0]==1)
{
S[3]=CMAX[0]+RMAX[0]+RMAX[1];
}
else
{
S[3]=2*RMAX[0]+CMAX[0];
}
}
else
{
if(g[0]==1)
{
S[3]=CMAX[0]+RMAX[0]+RMAX[1];
}
else
{
S[3]=2*RMAX[0]+CMAX[0];
}
} printf("每一个最大子弹数如下,%d,%d,%d,%d,%d\n",S[0],S[1],S[2],S[3],S[4]);
return 0;
}