#include //我感覺思路已經很清晰了
int main()
{
int array[10];
int arrayOdd[10][20];
int arrayEven[10][20];
int m , n , i , j , m1 , l = 0 , n1;
int Kodd=0,Keven=0;
scanf("%d",&m);
n1 = m;
for( i = 1; i <= m; i++)
{
scanf("%d",&array[i]);
}
while(m)//這次的運行結果少了1和2
{
for( i = 1; i <= array[m]; i++)//就是一和2消失了
{
if(i%2==0)
{
arrayEven[m][Keven]=i;
Keven++;
//printf("%d ",arrayEven[m][Keven]);
}
if(i%2!=0)
{
arrayOdd[m][Kodd]=i;
Kodd++;
//printf("%d ",arrayOdd[m][Kodd]);
}
}
Kodd=0,Keven=0;
m--;
}
for( i = 1; i <= n1;i++)//看來問題出來了輸出這裡,輸入我並沒有發現此物都很符合邏輯
{
for( j = 0 ;j < array[i]/2 ; j++)
{
printf("%d ",arrayOdd[i][j]);
}
printf("\n");
for(j = 0;j < array[i]/2-1;j++)
{
printf("%d ",arrayEven[i][j]);
}
printf("%d",arrayEven[i][array[i]/2-1]);
//printf("\n");
l++;
if(l < n1)
{
printf("\n");
}
if(i<n1)
printf("\n");
}
// printf("\n");
return 0;//,為什麼一直在輸出格式這裡面搞事?
}//嗯 還差了 一個 空格的問題
測試數據:
2
1000
10000
輸出的答案就不對了,你的數組開太小了,,而且最後還少一個換行