2 qq 27416233 qq_27416233 于 2016.04.18 15:41 提问

奇数和偶数分离的问题 求大神 指点 提交不上去

#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;//,为什么一直在输出格式这里面搞事? 

}//嗯 还差了 一个 空格的问题

6个回答

leilba
leilba   Rxr 2016.04.18 16:13
已采纳

测试数据:
2
1000
10000

输出的答案就不对了,你的数组开太小了,,而且最后还少一个换行

leilba
leilba   Rxr 2016.04.18 16:34

可以不用这么麻烦,简单一点可以用以下这样的代码,一边数据i一遍输出答案。

#include<stdio.h>

int main()
{
    int n,i;
    scanf("%d",&i);
    for (int z=0; z<i; z++) {
        scanf("%d",&n);
        //不是第一个数据的话要留一个空行
        if (z != 0) {
            printf("\n");
        }
        // 输出奇数
        for (int j=1; j<=n; j++) {
            if (j%2) {
                if (j > 2) {
                    // 注意空格用于分隔当前输出数据和前一个输出数据之间
                    printf(" ");
                }
                printf("%d",j);
            }
        }
        printf("\n");
        // 输出偶数
        for (int j=1; j<=n; j++) {
            if (j%2 == 0) {
                if (j > 2) {
                    // 注意空格用于分隔当前输出数据和前一个输出数据之间
                    printf(" ");
                }
                printf("%d",j);
            }
        }
        printf("\n");

    }
    return 0;
}

qq_27416233
qq_27416233 谢谢大神 提交了 数组开的太小了
一年多之前 回复
qq_27416233
qq_27416233   2016.04.18 15:43

图片说明

qq_27416233
qq_27416233   2016.04.18 15:44
为什么 会提示我 输出不对?求大神解惑
lm_whales
lm_whales   Rxr 2016.04.18 17:00

偶数和奇数,不都是相邻两个数相差2吗?
循环的步长,设置为2 就可以了
不必计算某个数是奇还是偶

hnzhangjq
hnzhangjq   2016.04.18 17:27

对第一个奇数或偶数,选取好,后面的2步伐。就可以了。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!