此代码仅在余数等于 0 时才有效:
CString temp;
int quarter = Emp_Max / 4;
int fstQrtr = quarter;
int scdQrtr = fstQrtr + quarter;
int trdQrtr = scdQrtr + quarter;
int fthQrtr = trdQrtr + quarter ;
int mod = Emp_Max % 4;
for(int i = 0 ; i < Emp_Max; i++){
EmpInfo[i].EmpLineName1 = "Emp_No";
EmpInfo[i].EmpLineName2 = "Emp_No";
EmpInfo[i].EmpLineName3 = "Emp_No";
EmpInfo[i].EmpLineName4 = "Emp_No";
if( i != Emp_Max )
{
temp.Format("EmpNo %d", i+1);
EmpName[i] = temp;
if (Emp_Max <= 4)
{
EmpInfo[i].EmpLineName1 = EmpName[i];
}
else
{
if (mod == 0)
{
if (i < fstQrtr)
{
EmpInfo[i].EmpLineName1 = EmpName[i];
}
else if (i < scdQrtr)
{
EmpInfo[i - fstQrtr].EmpLineName2 = EmpName[i];
}
else if (i < trdQrtr)
{
EmpInfo[i - scdQrtr].EmpLineName3 = EmpName[i];
}
else if (i < fthQrtr)
{
EmpInfo[i - trdQrtr].EmpLineName4 = EmpName[i];
}
}
}
}
}
例如,如果我声明 Emp_Max = 16,或者换句话说,如果 mod = 0,我会得到以下输出:
|==========|==========|==========|==========|
| Emp_No | Emp_No | Emp_No | Emp_No |
|==========|==========|==========|==========|
| EmpNo 01 | EmpNo 05 | EmpNo 09 | EmpNo 13 |
|==========|==========|==========|==========|
| EmpNo 02 | EmpNo 06 | EmpNo 10 | EmpNo 14 |
|==========|==========|==========|==========|
| EmpNo 03 | EmpNo 07 | EmpNo 11 | EmpNo 15 |
|==========|==========|==========|==========|
| EmpNo 04 | EmpNo 08 | EmpNo 12 | EmpNo 16 |
|==========|==========|==========|==========|
但是,例如,如果 Emp_Max = 18 或者换句话说,如果 mod !=0,我仍然得到上面相同的输出而不是这个:
|==========|==========|==========|==========|
| Emp_No | Emp_No | Emp_No | Emp_No |
|==========|==========|==========|==========|
| EmpNo 01 | EmpNo 06 | EmpNo 11 | EmpNo 15 |
|==========|==========|==========|==========|
| EmpNo 02 | EmpNo 07 | EmpNo 12 | EmpNo 16 |
|==========|==========|==========|==========|
| EmpNo 03 | EmpNo 08 | EmpNo 13 | EmpNo 17 |
|==========|==========|==========|==========|
| EmpNo 04 | EmpNo 09 | EmpNo 14 | EmpNo 18 |
|==========|==========|==========|==========|
| EmpNo 05 | EmpNo 10 | | |
|==========|==========|==========|==========|
我应该在代码中添加或更改什么以获得目标输出?TIA。