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 谢谢大神 提交了 数组开的太小了
大约 2 年之前 回复
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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
求奇数和偶数的和.rar
求奇数和偶数的和.rar 求奇数和偶数的和.rar 求奇数和偶数的和.rar 求奇数和偶数的和.rar 求奇数和偶数的和.rar 求奇数和偶数的和.rar
如何把一个整型数组中,奇数偶数进行分离
由于面试期间遇到一个笔试的问题,所以暂且贴出来供参考一下import java.util.Arrays;public class Tseparation { /** * 如何把一个整型数组中,奇数偶数进行分离。如前面放奇数,后面放偶数 * * 前提条件:不引入新的数组,一次for循环 * * 基本思想:一次循环,一个指针往前走,一个指针往
数据结构和算法之数组奇数、偶数分离
今日,博主在面试一家外企的时候,要求白板写程序。其中就有一道算法设计题目,下面就来分享一下这道题的算法思路和相关示例代码。         题目:要求将一个整形数组中的奇数和偶数进行分离,偶数在前面,奇数在后面,不对数字进行排序。         思路,其实这个是一类考察排序的题目的一种变形,排序的基本操作也是根据对应的规则对数据成员进行交换,所以呢这里的规则就是通过奇偶性进行排序。而我当时思
ACM-奇偶数分离
描述 有一个整型偶数n(2<= n <=10000),你要做的是:先把1到n中的所有奇数从小到大输出,再把所有的偶数从小到大输出。 输入第一行有一个整数i(2 每组有一个整型偶数n。输出第一行输出所有的奇数 第二行输出所有的偶数 样例输入 2 10 14 样例输出 1 3 5 7 9 2 4 6 8 10 1 3 5 7 9 11 13 2 4 6 8 10 12 14 
用php 把数组中偶数,选择出来
我有这样的一个小算法,把数组中的所有的偶数或技术分别选择出来。很多人可能,会循环这个数组,而我恰恰不循环数组就能做到这一点,代码如下。      function odd($var) { // returns whether the input integer is odd return($var & 1); } function even($var) { // ret
java--奇偶数的简单分离
此题比较简单,有很多方法实现,这里总结了两个方法,经过测试,占用内存较低,运行时间较短的方法 先看一下问题描述 描述有一个整型偶数n(2 输入第一行有一个整数i(2 每组有一个整型偶数n。 输出第一行输出所有的奇数 第二行输出所有的偶数 样例输入 2 10 14 样例输出 1 3 5 7 9 2 4 6 8 10 1 3 5 7 9 11
输入一个数,求这个数范围内的奇数和偶数的和
/**********************************************************  输入一个数,求这个数范围内的奇数和偶数的和  . QQ139767**********************************************************/#include void main(){ int a=0,b=0,c=1,d;  pri
求100以内的奇数和偶数的和
/**********************************************************  求100以内的奇数和偶数的和  . QQ139767**********************************************************/#include void main(){ int a=0,b=0,c=1; /*设a偶数b奇数分别为计
Java算法——求1到100的偶数和,奇数和
1、求1到100的偶数和 int sum = 0; for (int i = 2; i sum += i; } System.out.println("1到100的偶数和为:" + sum); 2、求1到100的奇数和 int sum = 0; for (int i = 1; i sum += i; } System.out.println("1到100的奇数
求1-100之内的奇数偶数和
代码<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>1-100奇数偶数求和</title> </head> <script type="text/javascript"> var evenSum = 0; var oddSum = 0; for(var i = 0;i